有个代码在Delphi7.0上编译出来正常用Delphi2010编译出来后却出错了

xmasxp 2009-11-11 04:26:25
下面这个代码在Delphi7.0上编译出来运行完全正常,但用Delphi2010编译也可以编译通过,不过提交数据的时候却弹出错误,不知道是什么原因,delphi7.0编译出来的是没错误的

执行这行代码的时候出错
HttpOpenRequest(hConnect, PChar('POST'),PChar(URLB), 'HTTP/1.1',nil, @AcceptType, INTERNET_FLAG_SECURE, 0);

分数不多请大家帮下忙


function PostNet(const URLA,URLB,FTPostQuery:string;ProA:String):string;
const BufferSize = 1024;
var
Session,
hConnect,hRequest:HINTERNET;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
Str,BUff: string;
TimeOut:integer;
AcceptType:LPStr;
TOPA:String;
ProB:String;
begin
TimeOut:=4000;
if ProA<>'' then ProB:='http://'+ProA;
Session := InternetOpen('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',3,Pchar(ProB), nil, 0);
try
InternetSetOption(Session,Internet_OPTION_CONNECT_TIMEOUT,@TimeOut,4); //设置超时4000
InternetSetOption(Session,INTERNET_OPTION_RECEIVE_TIMEOUT,@TimeOut,4); //设置超时4000
hConnect := InternetConnect(Session,PChar(URLA),INTERNET_DEFAULT_HTTPS_PORT, nil, nil,INTERNET_SERVICE_HTTP, 0, 0);
AcceptType := PAnsiChar('Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*');
hRequest := HttpOpenRequest(hConnect, PChar('POST'),PChar(URLB), 'HTTP/1.1',nil, @AcceptType, INTERNET_FLAG_SECURE, 0);
TOPA:='Accept-Language: zh-cn';
HttpAddRequestHeaders(hRequest,PChar(TOPA),Length(TOPA),HTTP_ADDREQ_FLAG_ADD);
HttpSendRequest(hRequest, 'Content-Type: application/x-www-form-urlencoded', 47,PChar(FTPostQuery), Length(FTPostQuery));
try
repeat
InternetReadFile(hRequest, @Buffer,SizeOf(Buffer), BufferLen);
SetLength(Str,BufferLen);
move(Buffer[1], Str[1], BufferLen);
Buff:=Buff+Str;
until BufferLen = 0;
Result:=BUff;
finally
InternetCloseHandle(hRequest)
end
finally
InternetCloseHandle(Session);
InternetCloseHandle(hConnect);
end
end;
...全文
314 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mszl521 2010-03-08
  • 打赏
  • 举报
回复
我也遇到这个问题!没有解决!郁闷ING!!!!!!!!!!!!
flashrhx2007 2009-11-11
  • 打赏
  • 举报
回复
新的DELPHI2010 对文字编码改变挺大的,我的很多PAS都要自己再修改一次才能用,多数就是ANSI CHAR这些问题
xmasxp 2009-11-11
  • 打赏
  • 举报
回复
唉怎么默认是unicode,气死人了,搞半天也转移不过来
我也不是不想用D7,但D7编译的程序不稳定,听说2010改善很多了才想转过来的
haitao 2009-11-11
  • 打赏
  • 举报
回复
拿个tcp的中转监控程序抓一下收到的数据是什么。。。。。。。。。
xmasxp 2009-11-11
  • 打赏
  • 举报
回复
还是不行。。。
gyk120 2009-11-11
  • 打赏
  • 举报
回复
你把所有的定义都转成unicode试试?
bdmh 2009-11-11
  • 打赏
  • 举报
回复
2010的pchar已经是双字节的了,你要使用pansichar
包括string类型都是unicode编码的
xmasxp 2009-11-11
  • 打赏
  • 举报
回复
可是我已经改为 PAnsiChar了啊,哪里错了能指出吗?
haitao 2009-11-11
  • 打赏
  • 举报
回复
2010缺省是unicode

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧