8

HttpClient の PostAsync を使用して Web サイトにログインしようとしています。ただし、常に失敗し、WireShark を使用して接続を追跡すると、データが正しく投稿されないことがわかりました

コード

var content = new FormUrlEncodedContent(new[] 
{
    new KeyValuePair<string, string>("value1", data1),
    new KeyValuePair<string, string>("value2", data2),
    new KeyValuePair<string, string>("value3", data3)
});

また

var content = new List<KeyValuePair<string, string>>
{
    new KeyValuePair<string, string>("value1", data1), 
    new KeyValuePair<string, string>("value2", data2), 
    new KeyValuePair<string, string>("value3", data3)
};

利用方法

httpClient.PostAsync(postUri, content)

期待

value1=123456&value2=123456&value3=123456

現実

//It adds strange += which makes the post fail...
value1=123456&value2+=123456&value3+=123456
4

3 に答える 3

1

可能性のある空白のパラメーターをトリムします。空白は + になります

var content = new List<KeyValuePair<string, string>>
{
    new KeyValuePair<string, string>("value1", data1.Trim()), 
    new KeyValuePair<string, string>("value2", data2.Trim()), 
    new KeyValuePair<string, string>("value3", data3.Trim())
};
于 2013-07-31T15:16:17.170 に答える