0

次のように、カスタム WebPost メソッドを持つ JavaScriptHelper クラスがあります。

public string WebPost(string url, string json)
        {
            #region

           string responseData = "";
            try
           {
                HttpWebRequest webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;

                StreamWriter requestWriter = null;
                webRequest.Method = "POST";
                webRequest.ContentType = "application/json";

                using (requestWriter = new StreamWriter(webRequest.GetRequestStream()))
                {
                    requestWriter.Write(json);
                }

                using (StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
                {
                    responseData = responseReader.ReadToEnd();
                }

                webRequest = null;
            }
            catch (WebException ex)
            {
                LogBase.LogController.WriteError(ex);
            }
            catch (Exception ex)
            {
                LogBase.LogController.WriteError(ex);
            }
            return responseData;
            #endregion
        }

これを使用して、次のように POST 要求を ASP.NET WebAPI サービスに送信します。

RegisterModel model = new RegisterModel();
model.email = "abc@gmail.com";
model.oAuthId = "11111111";
model.oAuthType = "Facebook";

string jsonStr = JsonConvert.SerializeObject(model);
string response = new JavaScriptHelper().WebPost("http://localhost:9091/api/Authentication/authenticateoauth", jsonStr);

サービスはこの呼び出しを受け取ります。ユーザーが存在する場合は応答を返し、存在しない場合はユーザーを作成して応答を返します。

私が直面している問題は、ユーザーが存在する場合、すべてが正常に機能することです。クライアント (JSON) で応答を取得します。存在しない場合、サーバー上にユーザーを正しく作成しますが、クライアントは早期に中断し、応答を待ちません。次のエラーが表示されます。

System.Net.WebException was unhandled
  HResult=-2146233079
  Message=The remote server returned an error: (500) Internal Server Error.
  Source=System
  StackTrace:
       at System.Net.HttpWebRequest.GetResponse()

リクエストの応答をもう少し待つにはどうすればよいですか?

4

0 に答える 0