最近在用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文件.
TIdTCPClient中文乱码问题 我在进行indy10.5.7这个版本进行idTCPClient及idTCPServer进行编程时同样汉字收发时会产生乱码,我在单元的里引用了 HTTPApp 单元, 在发的时候这样写IdTCPClient.IOHandler.WriteLn...
delphi 7 idhttp post 的8种使用方法(含源码),介绍了8种使用方法,供学习交流使用。
delphi 7 idhttp post 的8种使用方法(含源码),介绍了8种使用方法,供学习交流使用。
向web认证服务器通过https接口post认证数据,delphi2005正常使用。最初的的时候采用indy控件,IdHTTP和IdSSLIOHandlerSocketOpenSSL配合,但是没有成功,对方服务器连接后立即断开链接,不返回任何数据,后来通过...
http post方式请求 webservices soap协议接口
最近在网上查找了不少TidHTTP 相关的post,Get方法,但是都没有详细提及如何处理Http请求自定义Header再获取相关token,再根据token信息用TidHttp的get方法获取主机资料。详细资料请在资源里下载。
一个Delphi实现的HttpServer,支持RESTful风格路由
根据delphi2010中的indy组件的TIdHTTP类制作封装了类:THttpModule/THttpsModule,实现了方法get和post。https访问需要的2个动态链接库文件(libeay32.dll、ssleay32.dll)也打在包中了。代码文件已经在delphi2010中...
delphi操作IdHTTP报头读写 delphi操作IdHTTP报头读写
示例用Delphi的Indy控件,试过用163或139邮箱发送,可以用普通端口25或SSL端口发送,可以发送附件。 内含2002年的ssleay32.dll和libeay32.dll,其它版本可能会报错“Could not load SSL library”。 smtp.163.com ...
在界面添加控件TIdSSLIOHandlerSocketOpenSSL和TIdHTTP idslhndlrscktpnsl1: TIdSSLIOHandlerSocketOpenSSL; idhtp1: TIdHTTP; 设置idhtp1.IOHandler属性为idslhndlrscktpnsl1 将openssl-1.0.1j-i386-win32.zip...
DELPHI7做IDHTTP开发SSL时,提示使用的2个DLL文件 libeay32.DLL 和 ssleay32.DLL 亲测可用
用Borland C++ Builder 做的http和https下载程序。 支持http下载,支持单向https下载,支持双向https下载,支持代理,支持老版本的操作系统,也支持最新的windows7. 有兴趣的朋友可以看一下。
本代码用DELHPI自带的控件,只要再增加一个INDY,用IDHTTP.GET实现下载,最重要的是里面有WORD的说明文件,包含图片的全部控件的属性设置哦,是很好的学习工具,压缩包中也包含一个实例! 【编程思路】 我们在互联网...
分别保存了文件名、文件大孝日期和下载地址,之所以用ini文件,是因为Delphi方便的ini文件读写函数可以让我们分析升级信息文件的内容变得简单。 实现的方法由IdHTTP组件完成,通过本例我们可掌握try…finally…end...
TidHTTP控件下载网络文件,支持断点续传。
C++ builder 6.0 使用TIDHttp的例子, post 测试通过
C++Builder tidHttp用法, Post,Get的实例代码,经过测试是可以正常使用的, 稍微修改一下,可以用来测试HTTP的工具。
Idhttp Post 或者 Get SSL网站都会出错,就需要这两个Dll文件。我使用Delphi7 正常,其它版本我就清楚。