当前位置: 首页 > 知识库问答 >
问题:

如何在Xamarin表单中使用POST调用将文件对象发送到Web api?

房育
2023-03-14

我需要从我的xamarin forms应用程序进行POST调用,在那里我需要使用POST调用将文件对象按原样上传到API。

共有1个答案

郭弘盛
2023-03-14

如果您使用Base64或byte[]发送文件对象,那么它将被允许仅限于2-4 Mb,但如果您有一个比它更大的映像,它将不支持。

因此,解决方案是发布流内容,

var file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
            {
                PhotoSize = PhotoSize.Full,
                CompressionQuality = 100
            });

创建像public MediaFile attachedimage;这样的MediaFile对象,并将文件存储到其中,这样内存流就不会丢失。例如,attachedimage=file

HttpClient httpClient = new HttpClient();
MultipartFormDataContent mt = new MultipartFormDataContent();
AttachedImage.GetStream().Position = 0;
StreamContent imagePart = new StreamContent(AttachedImage.GetStream());
imagePart.Headers.Add("Content-Type", ImageType);
mt.Add(imagePart, String.Format("file"), String.Format("bk.jpeg"));

requestMessage.Content = mt;


var response = await httpClient.PostAsync("Your URL", mt);
if (response.IsSuccessStatusCode)
{
    var responseString = await response.Content.ReadAsStringAsync();
    var objRootObjectuploadImage = JsonConvert.DeserializeObject<RootObjectuploadImage>(responseString);
    if (objRootObjectuploadImage != null)
    {

    }
    else
    {

    }
}
else
{
    Loading(ActIndicator, false);
    await DisplayAlert(res.LAlert, "webserver not responding.", res.LOk);
}
 类似资料:
  • 我有一个使用Xamarin.Forms的应用程序,针对IOS,Android和WP 8。 我的应用中需要推送通知功能。 我看过<code>pushsharp</code>演示,它似乎很有前途。但我看到的所有代码都是针对每个平台分别编写的。 我希望这件事能在法庭上进行。Forms项目,在App.cs中的某个地方,这样我就不需要重复注册设备的代码,也不需要处理应该如何处理推送通知。 任何帮助都将不胜感

  • 我想发送一个JSON对象(注意,它不应该转换成字符串,因为服务器端代码是基于Spring starter项目的,它的params为(@requestbody PCAP PCAP))我有下面的代码,但它将主体转换成一个字符串,这给了我400个错误的请求。 注意:服务器端代码为

  • 问题内容: 所以我有这个HTML表单: 当用户单击“提交”时,哪种形式最简单的方法将此表单的数据作为JSON对象发送到我的服务器? 更新:我已经走了这么远,但似乎没有用: 我究竟做错了什么? 问题答案: 获取完整的表单数据作为数组,并对其进行json字符串化。 您可以稍后在ajax中使用它。或者,如果您不使用ajax;将其放在隐藏的文本区域中并传递到服务器。如果此数据通过常规格式数据作为json字

  • 问题内容: 我想使用POST方法将JSONObject发送到服务器。我已经使用凌空库通过字符串参数来正常工作,但是如果我尝试使用json对象,则在调用json对象时显示错误,这是我的代码 我的错误表单服务器是: 如何解决这个问题呢。我要添加 标题,请检查我的代码是否正确。请给我一个解决这个问题的建议 问题答案: JsonObjectRequest中的第三个参数用于以jsonobject形式传递发布

  • 由于Android开发人员建议使用类,我想知道是否有人能为我提供一个很好的例子,说明如何通过POST将位图“文件”(实际上是内存流)发送到Apache HTTP服务器。我对cookie、身份验证或任何复杂的东西都不感兴趣,但我只想有一个可靠的逻辑实现。我在这里看到的所有例子看起来更像是“让我们试试这个,也许它会奏效”。 现在,我有以下代码: 其中showDialog应该只显示一个(如果URL无效?