own*_*so4 3 c# django post http windows-phone-8
我在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();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我现在的问题是我的服务器没有得到图像.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']
Run Code Online (Sandbox Code Playgroud)
我无法修改django代码,因为此代码与Android应用程序一起使用
小智 7
使用此响应,
如何使用HTTP POST multipart/form-data将文件上传到服务器
试试这个......
HttpClient httpClient = new HttpClient();
MultipartFormDataContent form = new MultipartFormDataContent();
form.Add(new StringContent(token), "token");
var imageForm = new ByteArrayContent(imagen, 0, 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;
Run Code Online (Sandbox Code Playgroud)