HttpWebRequest BeginGetResponse Windows Phone 中的参数异常

本文关键字:参数 异常 Phone BeginGetResponse Windows HttpWebRequest | 更新日期: 2023-09-27 17:56:24

我将我的应用程序 POST 请求发送到某个 URL。当我第一次发送它时,没关系,但是当我再次调用方法SendBookingFreeCapacity()时,然后我得到

ApplicationUnhandledExceptionEventArgs在函数"private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)"中的 App.xaml 中。

问题是行:

webRequest.BeginGetResponse(new AsyncCallback(GetBookingFreeCapacitydResponseCallback), webRequest);

这是我的代码:

public static void SendBookingFreeCapacity() {
    var url = "https://..../getFreeCapacity";
    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = "POST";
    webRequest.ContentType = "application/x-www-form-urlencoded";
    webRequest.BeginGetRequestStream(
        new AsyncCallback(GetBookingFreeCapacityRequestStreamCallback), 
        webRequest);
}
private static void GetBookingFreeCapacityRequestStreamCallback(
    IAsyncResult asynchronousResult)
{
    try {
        HttpWebRequest webRequest = 
            (HttpWebRequest)asynchronousResult.AsyncState;
        string postData = string.Empty;
        System.IO.Stream postStream = 
            webRequest.EndGetRequestStream(asynchronousResult);
        postData = "<?xml version='"1.0'"?>" 
                   + "<request>" 
                   + "<login>" + Globals.Login + "</login>" 
                   + "<password>" + Globals.Password + "</password>" 
                   + "<hotId>" + htl.hotId + "</hotId>" 
                   + "<term>" 
                   + "<from>" + dayParser(Globals.PrijezdDate) + "</from>" 
                   + "<to>" + dayParser(Globals.OdjezdDate) + "</to>" 
                   + "</term>" 
                   + "</request>";
        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(postData);
        postStream.Write(byteArray, 0, byteArray.Length);
        postStream.Close();
        webRequest.BeginGetResponse(
            new AsyncCallback(GetBookingFreeCapacitydResponseCallback),
             webRequest); //after this I get the exception
    }
    catch (Exception ex) { }
}
private static void GetBookingFreeCapacitydResponseCallback(
    IAsyncResult asynchronousResult)
{
    try {
        HttpWebRequest webRequest =
            (HttpWebRequest)asynchronousResult.AsyncState;
        //some code...
    }
    catch (Exception ex) { }
}

你有一些提示是什么原因造成的吗?问题出在哪里?

HttpWebRequest BeginGetResponse Windows Phone 中的参数异常

某些用户会遇到相同的问题。

如何在 HttpWebResponse 中修复 System.ArgumentException?

在这种情况下,原因仍然未知。

System.ArgumentException: [net_WebHeaderInvalidControlChars] in Windoows Phone

在这种情况下,原因是 HTTP 请求标头中的非 ASCII 字符。

附言您永远不应该在非英语操作系统或 IDE 上进行开发。我 99% 确定你得到了 System.ArgumentException,但是你的"我在我的语言中本地化了这个异常名称"使得谷歌搜索解决方案和寻求帮助变得更加困难。

我创立了这个解决方案...创建新页面...