2012-11-03 194 views
0

Http post返回错误400错误的请求,这是我的代码,你能看到我要去哪里错了吗?我猜这是与URL有关?Http post返回错误400错误的请求asp.net c#

System.Collections.Specialized.NameValueCollection data = new System.Collections.Specialized.NameValueCollection(); 
     data["var1"] = source1; 
     data["var2"] = source2; 
     data["var3"] = source3; 


    // HTTP post and redirect the values 
    string str2 = string.Empty; 

    System.Text.StringBuilder builder = new System.Text.StringBuilder(); 

    foreach (string str3 in data.AllKeys) 
    { 
     builder.Append(str2); 
     builder.Append(HttpUtility.UrlEncode(str3)); 
     builder.Append("="); 
     builder.Append(HttpUtility.UrlEncode(data[str3])); 
     str2 = "&"; 
    } 

    //Make a request 
    string path = Request.Url.AbsoluteUri; 
    string url = path + Target + builder; 
    url = "http://localhost:1541/test/var1=SELEZIONA&var2=SELEZIONA&var3=SELEZIONA"; 
    WebRequest request = WebRequest.Create(url); 
    request.Method = "POST"; 
    request.ContentType = "application/x-www-form-urlencoded"; 

    //Put the post data into the request 
    byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(builder.ToString()); 

    request.ContentLength = byteArray.Length; 
    Stream reqStream = request.GetRequestStream(); 
    reqStream.Write(byteArray, 0, byteArray.Length); 
    reqStream.Close(); 

    //Get response 
    System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse(); 
    response.Close(); 

我已经把url中的实际url内容放到url变量中来显示它当前正试图发送的内容。

+0

愚蠢的问题,是网站运行和应用程序池开始? –

回答

0

您在URL中不存在用于分隔查询字符串的问号。我想这可能会导致这种错误。试试这个:

url = "http://localhost:1541/test/?var1=SELEZIONA&var2=SELEZIONA&var3=SELEZIONA"; 
+0

啊当然错过了。在运行http post之后,页面是否应该重定向到目标?它似乎还没有做任何事情。 – PeteTheGreek

+0

@PeteTheGreek嗯,你告诉我它应该做什么。该代码只读取请求的响应。你接下来做的是你。 –

+0

我试图让我的脑袋从后面的代码发布到另一个页面,这个代码发送http数据还是接收?谢谢,皮特。 – PeteTheGreek