2016-04-12 10 views
0

私はPOSTデータでWebリクエストを作成し、レスポンスを返そうとしています。私はそれがAndroidのために働いているが、それはWindows Phoneのために同じように動作しないし、それを動作させるように見えることはできません。現在、GetRequestStreamdGetResponseのエラーが表示されています。私はasyncawaitで試しましたが、nullポインタを返しました。 Androidで次のコードを使用しました:Windows Phone 8.1 webrequest POSTレスポンスを取得

public static string Login(string user, string pwd) 
    { 
     WebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("myurl"); 
     httpWebRequest.Method = "POST"; 
     using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) 
     { 
      LoginData data = new LoginData 
      { 
       userid = user, 
       password = pwd 
      }; 
      var json = JsonConvert.SerializeObject(data); 

      streamWriter.Write(json); 
      streamWriter.Flush(); 
      streamWriter.Dispose(); 
     } 

     var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
     { 
      return streamReader.ReadToEnd(); 
     } 
    } 
+0

これについては何が問題ですか?あなたは例外を受け取りますか? –

答えて

0

私はそれを稼働しています!回答は以下のコードで示されます。

public static string postData; 
    public static string responseString; 

    public static async Task PostJsonRequest() 
    { 
     string AuthServiceUri = "myurl"; 
     HttpWebRequest spAuthReq = WebRequest.Create(AuthServiceUri) as HttpWebRequest; 
     spAuthReq.ContentType = "application/json"; 
     spAuthReq.Method = "POST"; 
     spAuthReq.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), spAuthReq); 
    } 

    public static void GetRequestStreamCallback(IAsyncResult callbackResult) 
    { 
     HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState; 
     Stream postStream = myRequest.EndGetRequestStream(callbackResult); 
     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     postStream.Write(byteArray, 0, byteArray.Length); 
     postStream.Dispose(); 
     myRequest.BeginGetResponse(new AsyncCallback(GetResponsetStreamCallback), myRequest); 
    } 

    public static void GetResponsetStreamCallback(IAsyncResult callbackResult) 
    { 
     try 
     { 
      HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState; 
      HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackResult); 

      Stream streamResponse = response.GetResponseStream(); 
      StreamReader reader = new StreamReader(streamResponse); 
      responseString = reader.ReadToEnd(); 
      streamResponse.Dispose(); 
      reader.Dispose(); 
      response.Dispose(); 
     } 
     catch (Exception e) 
     { 

     } 
    } 

    public static void EnterLoginValues(string user, string pwd) 
    { 
     LoginData data = new LoginData 
     { 
      userid = user, 
      password = pwd 
     }; 
     postData = JsonConvert.SerializeObject(data); 
    } 
関連する問題