2013-11-27 2 views
1

Я получил ошибку followng при вызове метода GetReponse.HttpWebRequest.GetResponse: «Ссылка на объект не установлена ​​в экземпляр объекта»

Ссылка на объект не указывает на экземпляр объекта

Код:

WebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://www.sample.com.br/sellerItems/123/stock"); 
webRequest.Method = "GET"; 
webRequest.Headers.Add("appToken", "ABC123456"); 
webRequest.ContentType = "application/json"; 

// Exception thrown here, webRequest is not null 
using (WebResponse webResponse = webRequest.GetResponse()) 
{ 
    _httpStatusCode = ((HttpWebResponse)webResponse).StatusCode; 
} 

Что еще может вызвать это исключение и как его исследовать?

Я не понимаю, почему объект webRequest (созданный в первой строке) не содержит экземпляр объекта.

+4

Это сообщение об ошибке означает, что именно оно говорит; вы пытались разыменовать объектную переменную, которая фактически не содержит экземпляр объекта. Узнайте, какая строка кода выбрасывает исключение. –

+1

Можете ли вы опубликовать полное исключение? –

+3

Мое лучшее предположение, глядя только на то, что вы опубликовали, заключается в том, что _appToken имеет значение null, поэтому, когда GetResponse пытается создать заголовки, предположительно включая вызов _appToken.ToString(), он взрывается. – neilh

ответ

1

Чтобы решить эту проблему имя удаленного RequestUri должны быть проверены перед вызовом webRequest.GetResponse(). Метод WebRequest.Create() не проверяет.

+1

'WebRequest.Create()' будет, когда передан недопустимый URI, [исключение] (http://msdn.microsoft.com/en-us/library/bw00b1dc (v = vs.110) .aspx): _ "Недопустимый URI: формат URI не может быть определен" _. – CodeCaster

+0

Еще раз спасибо @CodeCaster! – adtteles

+1

Ницца улов. Исключение OP было брошено мной, когда я обнаружил проблему с конфигурацией, где URI был https: //www.example.comV3/blahblah. URI был недействительным, и ваш ответ нажал на меня, где проблема была. Браво! – Eon