我们正在使用xamarin ios本机应用程序中的聊天应用程序,我们希望使用HttpClient PostAsync()方法将图像上传到服务器,但是它的抛出异常就像
System.Net.Http.HttpRequestException:发送请求时发生错误---> System.Net.WebException:错误:ConnectFailure(没有到主机的路由)---> System.Net.Sockets.SocketException:没有到主机的路由....
我们选择图片后上传的代码是..
public async void UploadToServer(string filePath, string filename, string fileExtension,long fileSize)
{
using(var client = new HttpClient())
using(var content= new MultipartFormDataContent())
{
client.BaseAddress = new Uri("http://*////");
var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(filePath));
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = filePath
};
content.Add(fileContent);
var result = await client.PostAsync("api/FileUpload?groupID =" + ChatDetaiils.groupID + "&memberID=" + UserLogin.userID + "&Message=File Test&chatType=File&FileName="+filename+"&fileSize="+fileSize+"&fileExtension="+fileExtension+"",content);
}
}
我们在我们的xamarin android原生应用程序中使用相同的代码,并且它在android中运行良好。我们不知道我的错误是什么。我们正在使用visual studio for mac。
请帮忙解决这个问题或告诉我另一种上传方法...
我想你可能会得到更好的结果:
var values = new Dictionary<string, string>
{
{ "groupID", ChatDetaiils.groupID },
{ "memberID", UserLogin.userID },
{ "Message", File },
// etc..etc
};
var content = new FormUrlEncodedContent(values);
var result = await client.PostAsync("api/FileUpload, content);
我已经通过将正确的uri放在基址中解决了它。 client.BaseAddress = new Uri("http:***.***.*.**");