【问题标题】:How to read HTTP POST Request Message Parameters in c#如何在 C# 中读取 HTTP POST 请求消息参数
【发布时间】:2011-10-13 17:17:08
【问题描述】:

我能够读取 url 和整个页面,但无法读取 c# 中的 HTTP POST 请求消息参数。 在我的情况下,在他们验证他们向我发送带有 id 等参数的 HTTP Post 消息后,我将发布 url 到网站。

这是我的 C# 代码

HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create(uri);

postsourcedata = "processing=true&Sal=5000000";

request1.Method = "POST";
request1.ContentType = "application/x-www-form-urlencoded";
request1.ContentLength = postsourcedata.Length;
request1.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
Stream writeStream1 = request1.GetRequestStream();
UTF8Encoding encoding1 = new UTF8Encoding();
byte[] bytes1 = encoding1.GetBytes(postsourcedata);
writeStream1.Write(bytes1, 0, bytes1.Length);
writeStream1.Close(); 
HttpWebResponse response =   (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8);
string page = readStream.ReadToEnd();
//page.Close();
return page.ToString();

他们正在向我发送请求参数,例如 id 和 text ,如何在我这边读取这些参数。我正在通过网络服务发布到网站。

谁能帮我解决这个问题?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    如果他们向您发送 HTTP Post 消息,这意味着您需要有一个 Web 服务器或理解 HTTP 协议的东西来处理请求,对吗?

    我的意思是,根据您的描述,他们似乎正在向端口 80 或端口 443 (https) 发送 HTTP 请求,并且您应该有 asp.net 页面来处理该请求。一旦他们点击该页面,您就可以简单地执行以下操作:

    Request.Parameters("Id")
    Request.Parameters("Text")
    

    等等。

    【讨论】:

    • 在我的情况下,我正在使用 webservice 方法向他们的网站发布 url,他们再次使用参数回发,我只需要捕获那个参数。
    • @Shesi 好的,所以你有一个网站,他们正在回复它。你知道他们发回哪个页面吗?对您来说,这是一个可以在Page_Load 上处理的常规 HTTP 请求。我想他们会发回操作发起的页面。
    • 是的,他们正在回发到 web 服务是否可以读取 web 方法中的参数,我尝试了 request.RequestUri 我能够获取它响应的 url 但不是参数
    • 我相信post消息中的每个参数都必须匹配WebMethod中的参数。例如,如果他们通过 Post 调用您的 WebMethod Foo,并在 HTTP Post 请求中将 Id 和 Text 作为参数传递,那么您的 WebMethod 签名应该是这样的:[WebMethod] public void Foo(string id, string text) {//code here}
    猜你喜欢
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2013-01-11
    • 2021-07-08
    相关资源
    最近更新 更多