我需要转换www.example.com中的cURL字符串VB.net但我不能。我想我创建了一个错误的数据字符串。
这是cURL工作字符串:
curl -XPOST 'https://app.esendex.it/API/v1.0/REST/sms'
-H 'Content-Type: application/json'
-H 'user_key: MyKey' -H 'Session_key: MySessionKey'
-d '{"message_type": "N", "message": "Hello!", "recipient": ["1234567890"], "sender": "Bill", "returnCredits": true}'
......这是我的代码:
Private Sub SendMessage()
Dim webRequest As WebRequest = WebRequest.Create("https://app.esendex.it/API/v1.0/REST/sms")
Dim myReq As HttpWebRequest
Dim myData As String = "{'message_type': 'N', 'message': 'Hello!', 'recipient': '1234567890', 'sender': 'Bill, 'returnCredits': true}"
Dim web As New Net.WebClient
web.Headers.Add(Net.HttpRequestHeader.Accept, "application/json")
web.Headers.Add(Net.HttpRequestHeader.ContentType, "application/json")
web.Headers.Add("user_key", Chiavi(0))
web.Headers.Add("Session_key", Chiavi(1))
Dim response = web.UploadString("https://app.esendex.it/API/v1.0/REST/sms", "POST", myData)
Dim jsonResulttodict = JsonConvert.DeserializeObject(Of Dictionary(Of String, Object))(response)
myReq.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myData), 0, System.Text.Encoding.UTF8.GetBytes(myData).Count)
End Sub
回应给予我这个错误:
远程服务器返回错误:(400)错误的请求。
有人能帮帮我吗?
2条答案
按热度按时间i7uaboj41#
这是在C#中的实现方式。
cygmwpex2#
**您的VB.NET代码中的JSON无效。**JSON需要双引号(
"
),但您的VB.NET代码使用的是单引号('
)。在VB.NET字符串文字中,双引号可以通过将其加倍来转义,例如:
(最好使用JSON库来创建JSON。)
另外,您的curl代码提供
recipient
作为JSON数组("recipient": ["1234567890"]
),而您的VB.NET代码提供它作为JSON字符串('recipient': '1234567890'
)。这些小差异是相关的:人类读者可以从上下文中推断出你的意图,而Web服务却不能。