2012-02-26 14 views
0

Webリクエストを実行しHTTPレスポンスを取得するために次のコードがあります。 HTTPレスポンスがHTTP Webリクエストが2回送信されています(修正方法)

200 OKであれば私は何をしようとしていることは、私は再びWeb要求を送信せず、応答本体を読み取る必要が

、ある(私が知っている私のコードは、現在、それを2回送信しています)。あなたがここに見られるようにHttpWebResponse.GetResponseStreamを使用したい

 try 
     { 
      using (WebResponse response = request.GetResponse()) 
      { 
       HttpWebResponse httpResponse = (HttpWebResponse)response; 
       if (httpResponse.StatusCode == HttpStatusCode.OK) 
       { 
        using (var webClient = new WebClient()) 
        { 
         string result = webClient.DownloadString(request.RequestUri); 
         if(result.StartsWith("NUMBER NOT IN LIST")) 
         { 
          return "Number Not In List"; 
         } 
         return result; 
        } 
       } 
       else if (httpResponse.StatusCode == HttpStatusCode.Unauthorized) 
       { 
        return statusCode = HttpStatusCode.Unauthorized.ToString(); 
       } 
       else if (httpResponse.StatusCode == HttpStatusCode.BadRequest) 
       { 
        return statusCode = HttpStatusCode.BadRequest.ToString(); 
       } 

      } 
     } 

答えて

1

応答ストリーム読む:

try 
    { 
     using (WebResponse response = request.GetResponse()) 
     { 
      HttpWebResponse httpResponse = (HttpWebResponse)response; 
      if (httpResponse.StatusCode == HttpStatusCode.OK) 
      { 
       StreamReader reader = new StreamReader(response.GetResponseStream()); 
       string result = reader.ReadToEnd(); 
       if(result.StartsWith("NUMBER NOT IN LIST")) 
       { 
        return "Number Not In List"; 
       } 
       return result; 
      } 
      else if (httpResponse.StatusCode == HttpStatusCode.Unauthorized) 
      { 
       return statusCode = HttpStatusCode.Unauthorized.ToString(); 
      } 
      else if (httpResponse.StatusCode == HttpStatusCode.BadRequest) 
      { 
       return statusCode = HttpStatusCode.BadRequest.ToString(); 
      } 

     } 
    } 
1
if (httpResponse.StatusCode == HttpStatusCode.OK) 
{ 
    // we will read data via the response stream 
    var resStream = httpResponse.GetResponseStream(); 
    var sr = new StreamReader(resStream); 
    var result = sr.ReadToEnd(); 

} 
関連する問題