[英]How to upload a file and a parameter to a remote server via HttpClient PostAsync method?
[英]How to solve HttpRequestException while calling HttpClient PostAsync method to upload image
我們正在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:***.***.*.**");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.