`
明月昏灯
  • 浏览: 11950 次
社区版块
存档分类
最新评论

解决delphi客户端用TIDhttp POST 传参中文乱码问题

阅读更多
最近在用delphi写客户端,用Tidhttp post方法向服务器传参,但是碰到了中文乱码的问题。
1、delphi传中文到Java是乱码。
上代码:
procedure TForm18.Button1Click(Sender: TObject);
var
  userName : String ;
  userPwd : String ;
  Url: String ;
  Params : TStringList ;
  result : string ;
begin
  if edtUserName.Text ='' then
    showmessage('请输入用户名')
    else if edtPwd.Text ='' then
    showmessage('请输入密码')
    else
    begin
      userName := edtUserName.Text ;
      userPwd := edtPwd.Text ;
      Params := TStringList.Create ;
      Params.Add('userName='+userName) ;
      Params.Add('userPwd='+userPwd);
      idHTTP1.Request.ContentType:='application/x-www-form-urlencoded; Charset=UTF-8';
      Url := 'http://192.168.1.104:8080/myservlet/servlet/Hello';
      result := IdHTTP1.Post(Url, Params);

    end;
end;

    只要加一句idHTTP1.Request.ContentType:='application/x-www-form-urlencoded; Charset=UTF-8';就可以解决。

2、Java传中文到delphi是乱码。

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    response.setContentType("text/html:charset=utf_8");
    response. setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
    login(request ,response);
   
    }
   
    public void login (HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{
   
    response.setContentType("text/html:charset=UTF-8");
    response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
    String userName = request.getParameter("userName"); 
    String userPwd = request.getParameter("userPwd");   
    LoginDAO loginDAO = new LoginDAO();
    List<Operator> list = loginDAO.searchUser(userName , userPwd );
   
    }

加一句response.setCharacterEncoding("UTF-8");就解决了。
分享到:
评论

相关推荐

    delphi 2010 indy TIdHTTP 访问 https url post get

    解决 https post 会报scoket ...上次开发访问https出错了,post 一直出错在网络上找的很,下载了好多个都没有解决问题,后面才找到问题,跟大家分享一下。包含delphi 源码和libeay32.dll ssleay32.dll 两个ssl文件.

    Indy10.6和OpenSSL解决D7下GET&POST;乱码下载

    总的来说,这个压缩包提供了一个完整的解决方案,帮助开发者在Delphi 7环境下使用Indy10.6进行网络通信时,解决可能出现的中文乱码问题,并且通过OpenSSL增强了安全性。通过阅读并应用这些资源,开发者能够更顺畅地...

    xe的TIdTCPClient中文乱码问题

    TIdTCPClient中文乱码问题 我在进行indy10.5.7这个版本进行idTCPClient及idTCPServer进行编程时同样汉字收发时会产生乱码,我在单元的里引用了 HTTPApp 单元, 在发的时候这样写IdTCPClient.IOHandler.WriteLn...

    delphi 7 idhttp post 的8种使用方法(含源码)

    使用OnWork事件处理异步POST,以便在后台执行操作: ```delphi HTTP.OnWork := MyWorkEventHandler; HTTP.PostAsync('http://example.com', PostData); ``` 8. **处理重定向** IDHTTP默认会自动处理重定向,...

    delphi客户端文件上传代码和服务器端php接收代码

    这一步骤可能需要使用TIdHTTP或TInternetTransfer组件。 3. **服务器端PHP处理**:服务器端的PHP脚本(如`upload.php`)负责接收客户端的HTTP POST请求。使用PHP的`$_FILES`全局数组,可以访问上传的文件信息,包括...

    delphi 7 idhttp post 的8种使用方法

    本文将深入探讨IDHTTP组件在POST请求中的8种使用方法,帮助开发者更好地理解和利用这个强大的工具。 1. **基本POST请求** IDHTTP组件最简单的POST请求可以通过设置其 `Method` 属性为 `htPost`,然后调用 `Execute...

    【Delphi】http post请求 webservices接口

    接下来,使用TIdHTTP的Post方法发送请求。Post方法需要两个参数:URL(Web服务的地址)和Data(SOAP XML字符串)。示例代码如下: ```delphi uses IdHTTP, IdGlobal; var HTTP: TIdHTTP; Response: string; ...

    Delphi的rest与idhttp的post提交+源码+测试可用

    在Delphi中,使用IDHTTP组件进行POST请求时,通常涉及以下几个步骤: 1. 创建IDHTTP实例:首先,在代码中创建一个TIdHTTP对象,这将作为发送HTTP请求的基础。 ```delphi var IdHTTP: TIdHTTP; begin IdHTTP := ...

    Delphi通过https接口post数据

    向web认证服务器通过https接口post认证数据,delphi2005正常使用。最初的的时候采用indy控件,IdHTTP和IdSSLIOHandlerSocketOpenSSL配合,但是没有成功,对方服务器连接后立即断开链接,不返回任何数据,后来通过...

    使用delphi XE的IdHTTP控件POST的例子

    下面是一段使用`IdHTTP`进行POST的示例代码: ```delphi uses IdHTTP, IdTCPClient, IdBaseComponent, IdComponent; var HTTP: TIdHTTP; TCPClient: TIdTCPClient; Params: TStrings; begin // 创建并初始化...

    Delphi2007下有ssl的idhttp对https的url地址post一个json串Demo

    idHttp带json然后post到某个url已经比较普遍,但是如果是https的post就会不太一样,常用的post会报错或不成功,这时需要用到IdSSLIOHandlerSocketOpenSSL控件,和3个关键dll(libeay32.dll,ssleay32.dll,libssl32....

    delphi操作IdHTTP报头读写

    1. 创建IdHTTP组件:在Delphi的Form设计界面或代码中,首先创建一个TIdHTTP对象,例如: ```delphi var IdHTTP: TIdHTTP; begin IdHTTP := TIdHTTP.Create(nil); end; ``` 2. 设置报头字段:通过调用TIdHTTP的...

    Delphi 7.0 、 indy10(TidHTTP)、 json 、token获取用户信息

    最近在网上查找了不少TidHTTP 相关的post,Get方法,但是都没有详细提及如何处理Http请求自定义Header再获取相关token,再根据token信息用TidHttp的get方法获取主机资料。详细资料请在资源里下载。

    delphi_rest与idhttp的post提交

    本主题将深入探讨如何利用Delphi的REST组件和IDHTTP组件进行POST数据提交,这对于创建Web服务客户端或者与服务器进行交互的数据传递至关重要。 1. **IDHTTP组件介绍** IDHTTP组件是Delphi中用于执行HTTP请求(如...

    delphi http Post

    使用TIdHTTP,可以轻松地发起POST请求。基本步骤包括创建TIdHTTP对象,设置请求属性,如URL和Method,然后调用`Post`方法传递数据。例如: ```delphi var IdHTTP: TIdHTTP; PostData: TStrings; begin IdHTTP ...

    基于Delphi的Web Service 客户端调用

    ### 基于Delphi的Web Service 客户端调用 #### 一、Web Service 概述 ##### 1.1 Web Service 的定义及特点 Web Service 是一种新型的网络应用程序,它具有自包含(Self-Contained)、自描述(Self-Describing)...

    delphi post 百度空间登陆

    标题中的“Delphi Post 百度空间登陆”指的是使用Delphi编程语言开发的一个应用程序或组件,目的是通过HTTP POST请求来实现对百度空间的登录功能。Delphi是Borland公司开发的一种面向对象的可视化编程环境,常用于...

    http post 简单 不用安装 delphi 源码

    HTTP POST 是一种在客户端(如 Delphi 应用程序)向服务器发送数据的常用方法,常用于提交表单数据、上传文件或者进行API交互。在 Delphi 开发环境中,你可以直接编写源码来实现 HTTP POST 功能,无需额外安装任何...

    delphi2010使用Indy组件实现http/https

    根据delphi2010中的indy组件的TIdHTTP类制作封装了类:THttpModule/THttpsModule,实现了方法get和post。https访问需要的2个动态链接库文件(libeay32.dll、ssleay32.dll)也打在包中了。代码文件已经在delphi2010中...

    delphi post demo.rar

    《Delphi HTTP POST 教程:使用JSON格式数据》 Delphi是一款强大的对象 Pascal 编程语言,广泛用于开发桌面应用程序。在当今互联网时代,HTTP POST请求是客户端与服务器进行数据交互的重要方式之一,尤其在传输JSON...

Global site tag (gtag.js) - Google Analytics