zoukankan      html  css  js  c++  java
  • TIdHTTP get参数带中文解决方法--请求报文

    Post 看起来稍微复杂先,暂不讨论。post 目前按照一般方法有中文名也可以。

    拼接时:pointname=九记餐厅&begintime=2017-03-01 00:00:00& 有中文和时间有空格,也许会被服务端解析不出来。
    &pointname=%E4%B9%9D%E8%AE%B0%E9%A4%90%E5%8E%85&begintime=2017-03-01%2000:00:00&这样的格式才可以。
    通过 idhtp1.URL.URLEncode()可以解决

    //  idhtp1.Request.ContentEncoding :='utf-8';
    //  idhtp1.Request.CharSet :='utf-8';
        idhtp1.Request.ContentType := 'application/x-www-form-urlencoded';
        idhtp1.Request.AcceptLanguage := 'zh-CN,zh;q=0.8';
        idhtp1.Request.CacheControl   := 'no-cache';
        idhtp1.Request.Connection     := 'keep-alive';
        idhtp1.Request.Pragma         := 'no-cache';
        
        url:=  idhtp1.URL.URLEncode(Edit1.Text);
        GetText:= idhtp1.Get(url);
        mmo1.Text:=GetText;
        
    //方法1
    user  Httpapp; 
    HttpEncode(AnsiToUtf8('中文'));
    //方法2
      S := TIdURI.URLEncode(str);

     ==报文

    HTTP协议-请求报文

    用httpwatch查看访问一个网站的响应情况。敲入一个网址后,浏览器向服务器发出请求。
        页面中的图片、js、css在单独的请求中。
    GET /index.html HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议
    Accept-Encoding gzip, deflate表示浏览器支持gzip、deflate两种压缩算法
    Accept-Language zh-cn 表示浏览器支持的语言,很多进入后自动就是中文界面的国际网站就是通过读取这个头的值实现的。
    Connection Keep-Alive。一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,
      然后如果浏览器或者服务器在其头信息加入了Connection:keep-alive,则TCP连接在发送后将仍然保持打开状态,
      于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
    Cookie是浏览器向服务器发送和当前网站关联的Cookie,这样在服务器端也能读取浏览器端的Cookie了。
    User-Agent为浏览器的版本信息。通过这个信息可以读取浏览器是IE还是FireFox、支持的插件、.Net版本等。

  • 相关阅读:
    黑客防线
    基于onvif的码流转换专利
    8168开发之---1g内存换成512M的内存映射配置
    图像处理之基础---内积、点积
    3s 简介
    嵌入式开发之工具---比开发手册更重要的一个命令 man page
    图像处理之基础---频域分析
    lbp纹理特征
    28.Docker介绍与目录
    09.客户端集成IdentityServer
  • 原文地址:https://www.cnblogs.com/rogge7/p/6531980.html
Copyright © 2011-2022 走看看