求教golang 获取post参数中http发送post请求gb2312编码的解决方案

安卓HTTPclient post发送gb2312数据_百度知道
安卓HTTPclient post发送gb2312数据
我用抓包工具获取到的网页发送编码是gb2312,如果登陆成功之后他的statuscode是302,但是我现在用安卓httpclient传输数据,他每次获取到的返回值都是200也就是说登陆失败我想知道有什么方法能让安卓传送默认的utf-8转换成gb2312
你好,如果你使用的是httpclient,可是使用下面的方法发送gb2312数据,HttpPost httpRequest = new HttpPost(url);httpRequest.setEntity(new UrlEncodedFormEntity(pairs, &gb2312&));
设置的不好使,没有办法给传送过去,访问之后就提示登录失败。还有没有其他的转码方式了?
如果你的请求参数没有中文,转码也没有必要,你可以联调下,让服务器打印出请求日志来,看你传都参数是否正确,以确定是否是编码问题。
其他类似问题
为您推荐:
安卓的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&&&&&&/**//*&&&&作者:阿牛(牛昆亮)&QQ:&MSN:&&&&&&&&声明:可以免费使用,请您保留此信息&&&&&&&&如果您有什么改过,记得告诉我!&&&&*/&&&&&&& &function&PostDataToUrl(strUrl,strContent)&&&&&&&&set&xmlhttp&=&CreateObject("MSXML2.XMLhttp")&&&&&&&&xmlhttp.open&"POST",strUrl,false&&&&&&&&xmlhttp.setRequestHeader&"CONTENT-TYPE","text/charset=gb2312;"&&&&&&&&vout&=&Str2Bytes(strcontent,"gb2312")&&&&&&&&xmlhttp.setRequestHeader&"Content-Length",len(vout)&&&&&&&&xmlhttp.send(vout)&&&&&&&&strxml&=&xmlhttp.responseText&&&&&&&&set&xmlhttp&=&nothing&&&&&&&&PostDataToUrl&=&strxml&&&&end&function&&&&&&&&Function&Str2Bytes(str,charset)&&&&&&&&Dim&ms,strRet&&&&&&&&Set&ms&=&CreateObject("ADODB.Stream")&&&&'建立流对象&&&&&&&&ms.Type&=&<span style="COLOR: #&&&&&&&&&&&&&'&Text&&&&&&&&ms.Charset&=&charset&&&&'设置流对象的编码方式为&charset&&&&&&&&ms.Open&&&&&&&&&&&&&&&&&&&&&&&&&&&&ms.WriteText&str&&&&&&&&&&&&'把str写入流对象中&&&&&&&&&&&&&&&&ms.Position&=&<span style="COLOR: #&&&&&&&&&'设置流对象的起始位置是0&以设置Charset属性&&&&&&&&ms.Type&=&<span style="COLOR: #&&&&&&&&&&&&&&'Binary&&&&&&&&vout&=&ms.Read(ms.Size)&&&&'取字符流&&&&&&&&ms.close&&&&&&&&&&&&&&&&'关闭流对象&&&&&&&&Set&ms&=&nothing&&&&&&&&Str2Bytes&=&vout&&&&End&Function
阅读(...) 评论()页面导航:
→ 正文内容 PHP iconv 编码转换
PHP iconv 解决utf-8和gb2312编码转换问题
就一个很简单的函数iconv();但是就是这个函数在网上找了很多例子,都无法成功转换,这是为什么呢?
终于皇天不负有心人,答案还是让我找到了。 网上的都是这样用的
代码如下:$content = iconv("utf-8","gb2312",$content); 这样做其实也对着了,看着确实是把utf-8转化为gb2312了,但是实际运行的话,往往都是以失败告终的,原因呢? 原因实际上也很简单,因为任何的函数都是执行错误的时候,同时很不幸的是iconv();就很终于出现错误。现在给你正确的答案。 真正的答案是这样的
代码如下:$content = iconv("utf-8","gb2312//IGNORE",$content); 很简单的,只要后面加上一个//IGNORE就行,加上这个就可以是ICONV()函数忽略错误,继续执行。 同理,要像把gb2312换为utf-8只要写上$content = iconv("gb2312","utf-8//IGNORE",$content);就行
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910VS10中用C#写的HttpWebRequest请求的url被自动修改编码,无法获取想要的结果_百度知道
提问者采纳
string url=&&;HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url );
httpWebRequest.ContentType = &application/json&;
httpWebRequest.Method = &GET&;
httpWebRequest.Timeout = 20000;HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream());
string jsonstr = sr.ReadToEnd();如果按照您的代码这样去请求.他自身是会被改动成这个样子的..原因呢?是因为您本地的环境自身就不太符合您编码的格式.最根本的解决办法.C#拥有URL编码的类库在Asp.net中可以使用Server.HTMLEncode和Server.URLEncode 将文本或URL的特殊字符编码,但在控制台或Winform程序中没有办法使用到这些方法,解决办法:右击项目==》添加引用==》.NET==》System.Web==》确定System.Web.HttpUtility.HtmlEncode(str);System.Web.HttpUtility.HtmlDecode(str);System.Web.HttpUtility.UrlEncode(str); System.Web.HttpUtility.UrlDecode(str);编码后得到的字串和用Server.URLEncode编码得到的不一样编码时可以指定编码的,如 System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.Unicode); System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.UTF8); System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.GetEncoding( &GB2312 &)); 等 解码也可以指定编码的 System.Web.HttpUtility.UrlDecode(str,System.Text.Encoding.Unicode); System.Web.HttpUtility.UrlDecode(str,System.Text.Encoding.UTF8); System.Web.HttpUtility.UrlDecode(str,System.Text.Encoding.GetEncoding( &GB2312 &));
提问者评价
多谢,大神指点,因为最近有些事情,回复晚了,请谅解。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 golang http请求 的文章

 

随机推荐