2つのフォームを投稿しています。1つはc#で、もう1つはdelphiです。しかし、結果の文字列は異なるようです。
c#は返します:¤@@1@@@@1@@@@1@@xśm˱Â0Đ...
delphiは返します:#$1E'@@1@@@@1@@@@1@@x'#$009C...
とsiceは両方とも圧縮されたストリームです。解凍しようとするとエラーが発生します... C#は「正しい」です-つまり。抽出します。私はデルファイの専門家ではありません。コードの一部をc#からデルファイに変換する必要があります。
c#コード:
string GetData(Hashtable aParam, string ServerURL)
{
string Result = "";
WebRequest Request = HttpWebRequest.Create(ServerURL);
Request.Method = "POST";
Request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
UTF8Encoding encUTF8 = new System.Text.UTF8Encoding(false);
StreamWriter writer = new StreamWriter(Request.GetRequestStream(), encUTF8);
foreach (DictionaryEntry element in aParam)
{
writer.Write(element.Key + "=" + element.Value + "&");
}
writer.Close();
writer.Dispose();
WebResponse Response = Request.GetResponse();
StreamReader Reader = new StreamReader(Response.GetResponseStream(), System.Text.Encoding.Default);
Result = Reader.ReadToEnd();
Reader.Close();
Response.Close();
Reader.Dispose();
return Result;
}
デルファイコード:
function GetData(aParam:TStringList; ServerURL:string):string;
var
req: TIdHTTP;
res: string;
begin
req := TIdHTTP.Create();
with req do
begin
Request.ContentType := 'application/x-www-form-urlencoded; charset=UTF-8';
Request.Method := 'POST';
Request.CharSet := 'utf-8';
Request.AcceptCharSet := 'utf-8';
res := Post(ServerURL, aParam);
end;
Result := res;
req.Free;
end;
-編集-私はdelphi2010を使用しています