HttpContext.Current.Request.Form.Get(key) == null

xqhu2014 2014-05-22 02:54:09
// リクエストを作成
var request = HttpWebRequest.Create(url) as HttpWebRequest;
request.UserAgent = _userAgent;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postdata.Length;
if (withOAuth)
{
Uri uri = new Uri(url);
TestOAuth oAuth = new TestOAuth();
string consumerKey = this.OauthConsumerKey;
string consumerSecret = this.OauthConsumerSecret;
string nonce = oAuth.GenerateNonce();
string timestamp = oAuth.GenerateTimeStamp();
string authHeader = oAuth.GenerateAuthorizationHeader(uri, consumerKey, consumerSecret
, OAuthParam.METHOD_POST, timestamp, nonce);
request.Headers[HttpRequestHeader.Authorization] = authHeader;
}

using (var stream = request.GetRequestStream())
{
stream.Write(postdata, 0, postdata.Length);
stream.Close();
}
通过这样的请求服务器,

为什么在服务器端
取出来的
var a HttpContext.Current.Request.Form.Get(key);
a == null(why????)
...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
看起来没什么问题。 你们在集成测试环境没有放置fake数据吧
xqhu2014 2014-05-22
  • 打赏
  • 举报
回复
引用 7 楼 sunzongbao2007 的回复:
跟.net版本关系不大。 只要你不是弄到了.net 1.1上
byte[] postdata = Encoding.UTF8.GetBytes(tmppostdata);前面有这样的处理,我没贴出来了。tmppostdata=a=123&b=456&c=444
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
跟.net版本关系不大。 只要你不是弄到了.net 1.1上
xqhu2014 2014-05-22
  • 打赏
  • 举报
回复
引用 4 楼 sunzongbao2007 的回复:
//把要POST的数据以你要请求的网页编码进行编码,可能是utf8,unicode等 byte[] postdata = Encoding.Default.GetBytes("要POST的数据"); 这里,你这也没有key啊。 比如 a=123&b=456&c=444 这样的节奏
这些数据都是有的,我们的jenkis自动集成工具能取到值,但是本地debug的时候不行,我查询了一些资料好像说是。net版本不对。
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
如果你要取没有key的值, 那你需要这么写 HttpContext.Current.Request.InputStream去读取。
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
//把要POST的数据以你要请求的网页编码进行编码,可能是utf8,unicode等 byte[] postdata = Encoding.Default.GetBytes("要POST的数据"); 这里,你这也没有key啊。 比如 a=123&b=456&c=444 这样的节奏
sunny906 2014-05-22
  • 打赏
  • 举报
回复

            //把要POST的数据以你要请求的网页编码进行编码,可能是utf8,unicode等
            byte[] postdata = Encoding.Default.GetBytes("要POST的数据"); 
            
            var request = HttpWebRequest.Create(url) as HttpWebRequest;
            request.UserAgent = _userAgent;
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postdata.Length;

            //把数据写入请求的流中
            Stream stream = request.GetRequestStream();   
            stream.Write(postdata, 0, postdata.Length);
            stream.Close();

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
引用 1 楼 sunzongbao2007 的回复:
postdata里面是啥?
我看你咔咔一顿填 都是填到header里面啊, 只有postdata放到content了
铜臂阿铁木 2014-05-22
  • 打赏
  • 举报
回复
postdata里面是啥?

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧