簡體   English   中英

如何在調用HttpClient PostAsync方法上傳圖像時解決HttpRequestException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM