这是我连接到不受信任的服务器的代码,但我总是收到这个错误。我将代码放在using语句中,但它没有起作用,返回空字符串。我之前也尝试过并查看了此问题的链接,但它没有起作用。
private String requestAndResponse(String url)
{
string responseValue = string.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = httpMethod.ToString();
HttpWebResponse response = null;
// for un trusted servers
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
try
{
using (response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
{
throw new ApplicationException("error code " + response.StatusCode.ToString());
}
}
//process the response stream ..(json , html , etc.. )
Encoding enc = System.Text.Encoding.GetEncoding(1252);
StreamReader loResponseStream = new
StreamReader(response.GetResponseStream(), enc);
responseValue = loResponseStream.ReadToEnd();
loResponseStream.Close();
response.Close();
}
catch (Exception ex)
{
throw ex;
}
return responseValue;
}
response
只存在于using
语句块的范围内......你正在尝试在外部访问它。将你的代码放到using
语句块内即可。 - Elmer Dantasresponse
在语句之前已经声明了。 - Abbasusing
语句之外调用GetResponseStream
。这肯定是有问题的,你不应该期望它能正常工作。我建议你编辑这个问题,将代码放在using
语句内,并清楚描述发生了什么以及你已经采取了哪些步骤来诊断它。(你确定服务器确实返回了数据吗?)而且,这与visual-studio或.net-framework-version标签有什么关系也不清楚。 - Jon SkeetGetResponseStream
,这个方法只存在于using
语句块内部。 - Elmer Dantas