IdHTTPServer接收数据问题
程序接收设备主动上传的照片数据,各参数都能正常接收,就是照片数据接收不上来,查了一天的google加百度无果,只能在这里问问,分不多,但还是请大家积极帮忙!
帖子内空太长了,我只能截成两半
环境:C++Builder6+XP+Indy9.00.10
接收程序:
void __fastcall TFrmMain::HttpServerCommandGet(TIdPeerThread *AThread,
TIdHTTPRequestInfo *ARequestInfo, TIdHTTPResponseInfo *AResponseInfo)
{
TIdHTTPRequestInfo * req = ARequestInfo;
TIdHTTPResponseInfo * res = AResponseInfo;
if(req->Command == "GET") //这个GET的没问题,能接收,也能返回
{
res->ContentType = "text/plain";
res->Date = Now();
res->WriteHeader();
if(req->Document == "/getrequest")
{
res->ContentText = "OK\r\n";
res->WriteContent();
}
else
{
res->ContentText = "ERROR\r\n";
res->WriteContent();
}
}
else if(req->Command == "POST") //照片数据接收不到
{
Memo1->Lines->Add(req->UnparsedParams); //得到下面数据的:PIN=20120819133403-1.jpgSN=2528582230076size=2109CMD=uploadphoto
Memo1->Lines->Add(req->Params->Text);
res->ContentText = "OK\r\n";
res->WriteContent();
}
}
问题:
1.这照片数据用哪个属性获取:req->PostStream req->UnparsedParams req->Params->Text 这些都不对
2.AThread->Synchronize()这个是不是可以开启一个线程,让程序在线程里运行?还是IdHTTPServer本身就是用线程接收数据的?
[解决办法]
把二进制数据用Base64编码一下
[解决办法]
req->PostStream req->UnparsedParams req->Params->Text
得到的这3个分别是什么值