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 "";
                }

  • 相关阅读:
    RabbitMQ In JAVA 介绍及使用
    利用消息队列处理分布式事务
    SpringBoot入门篇--关于properties和yml两种配置文件的一些事情
    消息队列
    多线程-- ThreadLocal
    简单ORACLE分区表、分区索引
    OR 连接查询注意
    二分查找算法(JAVA)
    逻辑回归与决策树在分类上的一些区别
    从一个R语言案例学线性回归
  • 原文地址:https://www.cnblogs.com/lljinz/p/2244124.html
Copyright © 2011-2022 走看看