如何在c#.net中使用httpwebrequest数据发布 [英] How to post using httpwebrequest data in c#.net

查看:148
本文介绍了如何在c#.net中使用httpwebrequest数据发布的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试
{

string url =http://xyz.co.in:8080/register;

string postdata =uid+ uid +userid+ userid +password+密码+emailid+ emailid +isotemplate+ isotemplate +mobileno+ mobileno +
deviceserialid+ deviceserialid +compmacaddress+ compmacaddress +kioskid+ kioskid +kioskhandler+ kioskhandler +devicename
+ devicename +devicemodel+ devicemodel;
byte [] data = Encoding.UTF8.GetBytes(postdata);

HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);

request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method =POST;
//将我们的请求字符串转换为字节流
byte [] postBytes = Encoding.UTF8.GetBytes(postdata);

//这很重要 - 请确保以这种方式指定类型
request.ContentType =application / json; charset = UTF-8;
request.Accept =application / json;
request.ContentLength = postBytes.Length;
//request.CookieContainer = Cookies;
//request.UserAgent = currentUserAgent;
Stream requestStream = request.GetRequestStream();

//现在发送
requestStream.Write(postBytes,0,postBytes.Length);
requestStream.Close();

//抓住响应并将其打印到控制台以及状态码
HttpWebResponse response =(HttpWebResponse)request.GetResponse();
字符串结果;
using(StreamReader rdr = new StreamReader(response.GetResponseStream()))
{
result = rdr.ReadToEnd();
}

 





我的尝试:



远程服务器错误400消息

解决方案

< blockquote>

尝试将postdata设置为字符串,例如uid =+ uid +& userid =+ userid +& password =+ password etc 
ie'& '在不同的字段之间,字段名称和值之间的'='。

或者使用FormUrlEncodedContent

类似于
Dim params = New Dictionary(Of String,String)
params.Add(uid,uid)
params.Add(userid,userid)
params.Add(password,password)
....

Dim postdata = New FormUrlEncodedContent( PARAMS)


try
           {

               string url = "http://xyz.co.in:8080/register";

               string postdata = "uid" + uid + "userid" + userid + "password" + password + "emailid" + emailid + "isotemplate"+ isotemplate + "mobileno" + mobileno +
                                  "deviceserialid" + deviceserialid + "compmacaddress" + compmacaddress + "kioskid" + kioskid + "kioskhandler" + kioskhandler + "devicename"
                                  + devicename + "devicemodel" + devicemodel;
               byte[] data = Encoding.UTF8.GetBytes(postdata);

               HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

               request.KeepAlive = false;
               request.ProtocolVersion = HttpVersion.Version10;
               request.Method = "POST";
               // turn our request string into a byte stream
               byte[] postBytes = Encoding.UTF8.GetBytes(postdata);

               // this is important - make sure you specify type this way
               request.ContentType = "application/json; charset=UTF-8";
               request.Accept = "application/json";
               request.ContentLength = postBytes.Length;
               //request.CookieContainer = Cookies;
               //request.UserAgent = currentUserAgent;
               Stream requestStream = request.GetRequestStream();

               // now send it
               requestStream.Write(postBytes, 0, postBytes.Length);
               requestStream.Close();

               // grab te response and print it out to the console along with the status code
               HttpWebResponse response = (HttpWebResponse)request.GetResponse();
               string result;
               using (StreamReader rdr = new StreamReader(response.GetResponseStream()))
               {
                   result = rdr.ReadToEnd();
               }



What I have tried:

remote server bad error 400 message

解决方案

Try setting your postdata to be a string like "uid=" + uid + "&userid=" + userid + "&password=" + password etc
i.e. '&' between different fields and '=' between the field name and value.

Alternatively use FormUrlEncodedContent

Something like
Dim params = New Dictionary(Of String, String)
params.Add("uid", uid)
params.Add("userid", userid)
params.Add("password", password)
....

Dim postdata= New FormUrlEncodedContent(params)


这篇关于如何在c#.net中使用httpwebrequest数据发布的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆