最近在用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");就解决了。
分享到:
相关推荐
解决 https post 会报scoket ...上次开发访问https出错了,post 一直出错在网络上找的很,下载了好多个都没有解决问题,后面才找到问题,跟大家分享一下。包含delphi 源码和libeay32.dll ssleay32.dll 两个ssl文件.
总的来说,这个压缩包提供了一个完整的解决方案,帮助开发者在Delphi 7环境下使用Indy10.6进行网络通信时,解决可能出现的中文乱码问题,并且通过OpenSSL增强了安全性。通过阅读并应用这些资源,开发者能够更顺畅地...
TIdTCPClient中文乱码问题 我在进行indy10.5.7这个版本进行idTCPClient及idTCPServer进行编程时同样汉字收发时会产生乱码,我在单元的里引用了 HTTPApp 单元, 在发的时候这样写IdTCPClient.IOHandler.WriteLn...
使用OnWork事件处理异步POST,以便在后台执行操作: ```delphi HTTP.OnWork := MyWorkEventHandler; HTTP.PostAsync('http://example.com', PostData); ``` 8. **处理重定向** IDHTTP默认会自动处理重定向,...
这一步骤可能需要使用TIdHTTP或TInternetTransfer组件。 3. **服务器端PHP处理**:服务器端的PHP脚本(如`upload.php`)负责接收客户端的HTTP POST请求。使用PHP的`$_FILES`全局数组,可以访问上传的文件信息,包括...
本文将深入探讨IDHTTP组件在POST请求中的8种使用方法,帮助开发者更好地理解和利用这个强大的工具。 1. **基本POST请求** IDHTTP组件最简单的POST请求可以通过设置其 `Method` 属性为 `htPost`,然后调用 `Execute...
接下来,使用TIdHTTP的Post方法发送请求。Post方法需要两个参数:URL(Web服务的地址)和Data(SOAP XML字符串)。示例代码如下: ```delphi uses IdHTTP, IdGlobal; var HTTP: TIdHTTP; Response: string; ...
在Delphi中,使用IDHTTP组件进行POST请求时,通常涉及以下几个步骤: 1. 创建IDHTTP实例:首先,在代码中创建一个TIdHTTP对象,这将作为发送HTTP请求的基础。 ```delphi var IdHTTP: TIdHTTP; begin IdHTTP := ...
向web认证服务器通过https接口post认证数据,delphi2005正常使用。最初的的时候采用indy控件,IdHTTP和IdSSLIOHandlerSocketOpenSSL配合,但是没有成功,对方服务器连接后立即断开链接,不返回任何数据,后来通过...
下面是一段使用`IdHTTP`进行POST的示例代码: ```delphi uses IdHTTP, IdTCPClient, IdBaseComponent, IdComponent; var HTTP: TIdHTTP; TCPClient: TIdTCPClient; Params: TStrings; begin // 创建并初始化...
idHttp带json然后post到某个url已经比较普遍,但是如果是https的post就会不太一样,常用的post会报错或不成功,这时需要用到IdSSLIOHandlerSocketOpenSSL控件,和3个关键dll(libeay32.dll,ssleay32.dll,libssl32....
1. 创建IdHTTP组件:在Delphi的Form设计界面或代码中,首先创建一个TIdHTTP对象,例如: ```delphi var IdHTTP: TIdHTTP; begin IdHTTP := TIdHTTP.Create(nil); end; ``` 2. 设置报头字段:通过调用TIdHTTP的...
最近在网上查找了不少TidHTTP 相关的post,Get方法,但是都没有详细提及如何处理Http请求自定义Header再获取相关token,再根据token信息用TidHttp的get方法获取主机资料。详细资料请在资源里下载。
本主题将深入探讨如何利用Delphi的REST组件和IDHTTP组件进行POST数据提交,这对于创建Web服务客户端或者与服务器进行交互的数据传递至关重要。 1. **IDHTTP组件介绍** IDHTTP组件是Delphi中用于执行HTTP请求(如...
使用TIdHTTP,可以轻松地发起POST请求。基本步骤包括创建TIdHTTP对象,设置请求属性,如URL和Method,然后调用`Post`方法传递数据。例如: ```delphi var IdHTTP: TIdHTTP; PostData: TStrings; begin IdHTTP ...
### 基于Delphi的Web Service 客户端调用 #### 一、Web Service 概述 ##### 1.1 Web Service 的定义及特点 Web Service 是一种新型的网络应用程序,它具有自包含(Self-Contained)、自描述(Self-Describing)...
标题中的“Delphi Post 百度空间登陆”指的是使用Delphi编程语言开发的一个应用程序或组件,目的是通过HTTP POST请求来实现对百度空间的登录功能。Delphi是Borland公司开发的一种面向对象的可视化编程环境,常用于...
HTTP POST 是一种在客户端(如 Delphi 应用程序)向服务器发送数据的常用方法,常用于提交表单数据、上传文件或者进行API交互。在 Delphi 开发环境中,你可以直接编写源码来实现 HTTP POST 功能,无需额外安装任何...
根据delphi2010中的indy组件的TIdHTTP类制作封装了类:THttpModule/THttpsModule,实现了方法get和post。https访问需要的2个动态链接库文件(libeay32.dll、ssleay32.dll)也打在包中了。代码文件已经在delphi2010中...
《Delphi HTTP POST 教程:使用JSON格式数据》 Delphi是一款强大的对象 Pascal 编程语言,广泛用于开发桌面应用程序。在当今互联网时代,HTTP POST请求是客户端与服务器进行数据交互的重要方式之一,尤其在传输JSON...