我有以下代码在.NET 4.0上运行正常。但是当我将目标框架更改为.NET3.5时,它运行时没有任何错误,但没有进行上传。
当调试它从行resp.Result.EnsureSuccessStatusCode();
跳过并且从不执行下面的行或至少执行catch块时。
(顺便说一句,我已经将System.Net.Http从这里添加到.net 3.5,因为httpclient没有附带.net3.5 - https://www.nuget.org/packages/Rackspace.HttpClient35/1.0.0-beta003)
public string pp(string bb,string code,string kb)
{
try
{
HttpClient httpClient = new HttpClient();
MultipartFormDataContent formx = new MultipartFormDataContent();
formx.Add(new StringContent(code), "fn");
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(kb);
string kbb= System.Convert.ToBase64String(plainTextBytes);
formx.Add(new StringContent(kbb), "kb");
formx.Add(new StringContent(bb), "img");
var resp = httpClient.PostAsync("http://s.*****.com/put.php", formx);
resp.Result.EnsureSuccessStatusCode();
httpClient.Dispose();
string rep = resp.Result.Content.ReadAsStringAsync().Result;
return rep;
}
catch (Exception ee) {
return "no";
}
}
答案 0 :(得分:0)
我认为postasync适用于新版本。你可以找到他们需要框架至少4.0的文件
了解更多详情请点击以下链接
答案 1 :(得分:0)
HttpClient
意味着在版本.Net 4.0之前没有引入System.Net.Http.HttpClient
。因此它甚至不应该编译。
您的项目可能未正确重建(clean \ build),因为编译器不允许您构建项目。