如何使用VB.net通过HttpWebRequest-POST传递JSON数据?

时间:2018-08-10 16:58:20

标签: asp.net json vb.net httprequest

我已经阅读了很多问题,并尝试了几种不同的方法,所以也许我的API服务与众不同。但这是我的第一次,我无法使其正常工作,所以我想在这里发帖,看看是否有人可以教育我。

我的代码导致响应错误400-错误的请求(为安全起见,API和其他详细信息已更改)

Dim httpWebRequest = DirectCast(WebRequest.Create("https://api.smtp2go.com/v3/users/smtp/add"), HttpWebRequest)
        httpWebRequest.ContentType = "application/json"
        httpWebRequest.Method = "POST"

        Using streamWriter = New StreamWriter(httpWebRequest.GetRequestStream())
            Dim json As String = "{'api_key': ""api-123456123456123456123456"", 'username': ""user@domain.com"", 'description': ""Generated via API"" }"

            streamWriter.Write(json)
            streamWriter.Close()

        End Using

        Dim httpResponse = DirectCast(httpWebRequest.GetResponse(), HttpWebResponse)
        Using streamReader = New StreamReader(httpResponse.GetResponseStream())
            Dim result = streamReader.ReadToEnd()
        End Using

他们的JavaScript示例

var url = "https://api.smtp2go.com/v3/users/smtp/add";
$.ajax({
  url: url,
  method: 'POST',
  headers: {
    'Content-Type': "application/json"
  },
  data: JSON.stringify({
    'api_key': "api-123456123456123456123456",
    'username': "user@domain.com",
    'description': "Generated via API"
  }),
}).done(function(result) {
  console.log(result);
}).fail(function(err) {
  throw err;
});

他们的PHP示例

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
  "Content-Type: application/json"
));
curl_setopt($curl, CURLOPT_URL,
  "https://api.smtp2go.com/v3/users/smtp/add"
);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(array(
  "api_key" => "api-123456123456123456123456",
  "username" => "user@domain.com",
  "description" => "Generated via API"
)));
$result = curl_exec($curl);
echo $result;

0 个答案:

没有答案