zoukankan      html  css  js  c++  java
  • asp.net HttpWebRequest post 中文数据

     private static string  HttpPost()
            
    {
                
    string postData="username=中文&userid=838 jdkkd";//在发送的内容里包括中文和空格
                string Web=@"http://www.myweb.com/myresponse.asp";//地址
                postData=postData.Replace(" ","%20");//替换空格
                
    try
                
    {
                    
    //获取URL并进行发送字串
                    HttpWebRequest myHttpWebRequest =(HttpWebRequest)WebRequest.Create(Web);
                    
                    Stream myStream
    =new MemoryStream ();//定义这个Stream是只是为了得到发送字串 经过编码之后得到的

    byte的长度。
                    StreamWriter myStreamWriter
    =new StreamWriter(myStream,Encoding.Default);//用默认编码 得到

    Stream                
                    myStreamWriter.Write(postData);
                    myStreamWriter.Flush();

                    
    long len=myStream.Length;//目的完成
                    myStreamWriter.Close(); 
                    
                    myHttpWebRequest.ContentType
    ="application/x-www-form-urlencoded";
                    myHttpWebRequest.ContentLength
    =len;//如果字符串中存在中文 使用postData.Length得到长度和编码之

    //后的长度是不一样的:(
                    myHttpWebRequest.Method="POST";

                    Stream newStream
    =myHttpWebRequest.GetRequestStream();
                    myStreamWriter
    =new StreamWriter(newStream,Encoding.Default);//编码使用Encoding.Default 换来换去编码方法 还是用它得到的中文不会出现乱码,特别是把request("")得到的值写入sql数据库的时候 真是奇怪^O^

                    myStreamWriter.Write(postData);
                    myStreamWriter.Close();

                    
    //获取本次的回馈,先创建接收回馈的类HTTPWEBRESPONSE
                    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
                    
    //创建接收回馈的字节流类
                    Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流 做爬虫的基础???
                    Encoding encode 
    = System.Text.Encoding.Default;
                    StreamReader readStream 
    = new StreamReader( receiveStream, encode );
                    readStream.Close();
                    
    return "";
                                
                }

                
    catch(Exception e)
                
    {
                    
    return "";
                }

  • 相关阅读:
    tornado源码分析-多进程
    create a cocos2d-x-3.0 project in Xcode
    记录自己的傻逼的错误:找不到或无法载入主类
    MVC5 Entity Framework学习之实现主要的CRUD功能
    Linux中实现多网卡绑定总结
    it码农之心灵鸡汤(一)
    【高级算法】遗传算法解决3SAT问题(C++实现)
    MySQL-分区表-1
    OpenSift源代码编译过程记录
    Android Studio 视图解析
  • 原文地址:https://www.cnblogs.com/lljinz/p/2244124.html
Copyright © 2011-2022 走看看