加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 通过带有HttpClient的HTTP POST Windows Phone 8.1上传图

发布时间:2020-12-16 02:03:56 所属栏目:百科 来源:网络整理
导读:我在C#中有一个 Windows Phone应用程序.我正在尝试将图像(byte [])和会话令牌(字符串)发送到我的django服务器,但不是如何做到这一点. 我看过其他帖子,但它不起作用,或者使用的类不存在. 我的功能的标题是: public static async Taskbool sendImagePerfil(st
我在C#中有一个 Windows Phone应用程序.我正在尝试将图像(byte [])和会话令牌(字符串)发送到我的django服务器,但不是如何做到这一点.

我看过其他帖子,但它不起作用,或者使用的类不存在.

我的功能的标题是:

public static async Task<bool> sendImagePerfil(string token,byte[] imagen)
    {
        using (var client = new HttpClient())
        {
            var values = new List<KeyValuePair<string,string>>();
            values.Add(new KeyValuePair<string,string>("token",token));
            values.Add(new KeyValuePair<string,string>("image",Convert.ToString(imagen)));

            var content = new FormUrlEncodedContent(values);

            var response = await client.PostAsync("MyURL.domain/function",content);

            var responseString = await response.Content.ReadAsStringAsync();
        }


    }

编辑:我现在的问题是我的服务器没有得到图像. django代码是:

if request.method == 'POST':
        form = RestrictedFileField(request.POST,request.FILES)
        token = models.UsuarioHasToken.objects.get(token=parameters['token'])
        user = token.user
        print (request.FILES['image'])
        user.image = request.FILES['image']

我无法修改django代码,因为此代码与Android应用程序一起使用

解决方法

使用此响应,

How to upload file to server with HTTP POST multipart/form-data

试试这个……

HttpClient httpClient = new HttpClient();
        MultipartFormDataContent form = new MultipartFormDataContent();

        form.Add(new StringContent(token),"token");

        var imageForm = new ByteArrayContent(imagen,imagen.Count());
        imagenForm.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");

        form.Add(imagenForm,"image","nameholder.jpg");

        HttpResponseMessage response = await httpClient.PostAsync("your_url_here",form);

        response.EnsureSuccessStatusCode();
        httpClient.Dispose();
        string result = response.Content.ReadAsStringAsync().Result;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读