HttpWebRequest与POST和GET在同一时间

我需要使用POST方法将用户重定向到http://www.someurl.com?id=2。 可能吗? 如果是,那么如何?

现在我有以下,它正确地转发POST数据,但它会删除?id = 2:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.someurl.com?id=2");
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;

using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
    writer.Write(postData);
}

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    Response.Write(reader.ReadToEnd());
}

我需要查询字符串数据 - >?id = 2和POST数据的原因是因为我将查询字符串传递给页面,其中javascript将处理查询字符串数据,.NET将使用通过POST发送的数据方法。 我传递的POST数据可能比GET方法允许的最大字符数更长,因此我不能只使用GET方法...所以,您有什么建议?

更多信息:我正在编写一个路由页面,它将一些自定义信息添加到查询字符串中,然后将所有新旧数据进一步路由到某个提供的URL。 这个页面应该能够重定向到我们的服务器以及某个人的服务器,并且不需要知道它来自哪里或去哪里,它只需要保持相同的POST,GET和HEADER信息以及在此步骤收到的其他信息。


不,没有可混合的原因来混合POST和GET。

如果您需要将参数传递给Javascript,只需将它们发布到服务器,然后让服务器在隐藏字段中输出相关信息...

<input type="hidden" value="id=2,foo=bar" disabled="disabled" />

就那么简单。

注意:禁用隐藏字段将其从后续POST中排除,如果有的话;)


问题我认为问题可能是postData不包含id参数,因为它是通过querystring提供的。

发布的数据位于请求的正文中,查询字符串数据位于url中。

您可能需要将request.querystring中的id从postdata变量中提取出来。


考虑到你的问题的额外信息,你需要提交给外部来源,我相信你必须做的是处理所有数据并返回一个带有隐藏字段的表单。 加载一些javascript后立即将该表单提交到外部URL。 请注意,您不会以这种方式上传文件,但您可以适当地处理POST和GET数据。

链接地址: http://www.djcxy.com/p/41093.html

上一篇: HttpWebRequest with POST and GET at the same time

下一篇: Rails functional test: sending URL query parameters in POST request