Запрос Asp.net Json Post

Мне нужно подключиться к серверу, отправив запрос Json.

Администратор сервера сказал мне, что у меня должен быть установлен https-сервер.

Я купил ssl и установил его на свой сервер.

Они прислали мне строковый формат json, то есть как получить данные со своего сервера. Я пытался сделать примерный запрос, но каждый раз получаю такую ​​ошибку:

Удаленный сервер возвратил ошибку: (400) неверный запрос.

Я позвонил им, и они сказали, что в запросе отсутствует сертификат закрытого или открытого ключа (я отправляю им сертификат, и они также установили его на свой сервер), но все равно получают ту же ошибку.

Это код, который я использую:

Кто-нибудь может сказать мне, если у меня что-то не так, пожалуйста?

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    POST("https://gw.bisan.com/api/apdemo_6", "{""user"":""MyUser"",""password"":""MyPASS"",""command"":""table"",""table"":""currency"",""fields"":[""symbol"",""rate""]}")
    ' Read()
End Sub

Private Sub POST(url As String, jsonContent As String)
    Try
        Dim request As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
        request.ContentType = "text/json"
        request.Method = "POST"
        Dim streamWriter As StreamWriter = New StreamWriter(request.GetRequestStream())
        streamWriter.Write(jsonContent)
        streamWriter.Flush()
        streamWriter.Close()
        Dim httpResponse As HttpWebResponse = request.GetResponse()
        Dim streamReader As StreamReader = New StreamReader(httpResponse.GetResponseStream())
        Dim result = streamReader.ReadToEnd()
        Label1.Text = result.ToString
    Catch ex As WebException
        Label1.Text = ex.Message
    End Try
End Sub

person Sami Karaeen    schedule 05.02.2015    source источник
comment
Вам нужно увидеть почтовый запрос (используя скрипач или другие инструменты) и сравнить с ожидаемым постом.   -  person Win    schedule 05.02.2015
comment
Вы можете объяснить больше, пожалуйста   -  person Sami Karaeen    schedule 05.02.2015


Ответы (1)


Установите Fiddler на свой компьютер для разработки http://www.telerik.com/fiddler, запустите его и отправить запрос с вашего компьютера. Fiddler перехватит всю информацию о почтовом запросе и упорядочит ее для вас, чтобы вы могли точно просмотреть, что отправляется вашим кодом, и сравнить это с тем, что ожидает сервер. Оттуда вы сможете более четко увидеть причины ошибки 400 и соответствующим образом изменить свой код.

Я предполагаю, что проблема заключается в окончательном выводе строки JSON или запроса.ContentType = "text / json" (возможно, это должно быть application / json). В любом случае, Fiddler - гораздо более быстрый способ узнать.

person brianc    schedule 12.02.2015