2013-11-21 1 views
0

я пытаюсь получить ответ от HttpWebRequest с использованием метода GET и типа JSON содержание .. но я получаю Cannot send a content-body with this verb-typeПолучение JSON с помощью веб-запроса HTTP с помощью получить

здесь мой код:

Dim objRequest As HttpWebRequest = WebRequest.Create(url) 
Dim reqBytes As Byte() = System.Text.UTF8Encoding.UTF8.GetBytes(strPost) 
objRequest.Method = "GET" 
objRequest.Timeout = "15000" 
objRequest.ContentLength = reqBytes.Length 
objRequest.ContentType = "application/json; charset=utf-8" 

Try 
    myWriter = objRequest.GetRequestStream() 
    myWriter.Write(reqBytes, 0, reqBytes.Length) 

Catch e As Exception 
    writetotext(e.toString) 
End Try 

Я что-то пропустил?

ответ

3

HTTP GET не может иметь тело сообщения. Обычно данные передаются через путь URI и строку запроса, а не через тело сообщения для запросов GET. Для POST, PUT и т. Д. Вы должны быть в состоянии сделать то, что вы пытаетесь сделать в приведенном выше коде.

+0

ОК, поэтому я удалил это 'objRequest.ContentType =" application/json; charset = utf-8 ", но мне нужно получить ответ запроса, поскольку json есть что-нибудь, что я должен добавить? – User7291

+0

Попробуйте 'objRequest.Accept =" application \ json "'. Но главная проблема заключается в том, что вы не можете писать в поток запросов. GET не может иметь тело сообщения. Полезная нагрузка в форме 'strPost' может быть либо отправлена ​​с использованием метода POST, либо передана в виде строки запроса. – Badri