Привет, у меня есть следующая команда cURL, которую я хотел бы преобразовать в VB.NET или C#.Преобразование команды cURL в .NET
curl https://api.box.com/2.0/users \-H "Authorization: Bearer ACCESS_TOKEN" \ -d '{"login": "[email protected]", "name": "Ned Stark"}' \ -X POST
Я попытался следующие в VB.NET:
Dim url As String = "https://api.box.com/2.0/users"
Dim wrq = CType(Net.WebRequest.Create(url), HttpWebRequest)
Dim postString As String = "[email protected]&name=Ned Stark"
wrq.Headers.Add("Authorization: Bearer " & o2ses.AccessToken)
wrq.Method = "POST"
wrq.ContentType = "application/x-www-form-urlencoded"
wrq.ContentLength = postString.Length
Dim wrqWriter As New StreamWriter(wrq.GetRequestStream())
wrqWriter.Write(postString)
wrqWriter.Close()
Dim responseReader As New StreamReader(wrq.GetResponse().GetResponseStream())
Dim responseData As String = responseReader.ReadToEnd()
Я Newb свернуться и используя HttpWebRequest в .NET, но преобразовали Curl команды .NET раньше (спасибо на этот сайт :)), но ни один с опцией -d в них, поэтому я потерян. Он продолжает возвращать ошибку 400 (неудачный запрос), когда выполняется строка ниже.
Dim responseReader As New StreamReader(wrq.GetResponse().GetResponseStream())
Я думаю, что он должен делать с тем, что данные, которые я посылаю (т.е. он не получает надлежащего «логин» и «имя» параметры для этого нужно).
Любая помощь приветствуется. Я могу попытаться предоставить дополнительную информацию, если это необходимо. Как уже упоминалось, я новичок в этом, поэтому я постараюсь изо всех сил.
Спасибо!
Ваше сообщение строка должна быть в кодировке URL (см HttpUtility.UrlEncode() или пример здесь HTTP://stackoverflow.com/a/14703032/99256) для стартеров. –
Спасибо за ответ и ссылку. Я изменил код, чтобы определить poststring как stringbuilder и добавил данные с urlencoded, но я все еще получаю «плохой запрос (400)» из веб-службы. – user1146024