2013-07-09 3 views
1

Добрый вечер.Android clclient multipart post

У меня есть пост запрос, как этот

-----------------------------17911109517875 Content-Disposition: form-data; 
name="PERSON*1[F*2][2664]" value1 
-----------------------------17911109517875 Content-Disposition: form-data; 
name="PERSON*1[I*3][2776]" value2 
-----------------------------17911109517875 Content-Disposition: form-data; 
name="PERSON*1[O*4][2778]" value3 

И пытается отправить его с андроид устройства через HttpClient.

public String doMultipartPost(String url, List<NameValuePair> urlParameters) { 

    HttpContext localContext = new BasicHttpContext(); 
    localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); 

    HttpPost request = new HttpPost(url); 
    HttpProtocolParams.setUserAgent(client.getParams(), "My funcy UA"); 

    MultipartEntity entity = new 
      MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 

    for (NameValuePair nvp : urlParameters) { 
     try { 
      entity.addPart(nvp.getName(), new StringBody(nvp.getValue())); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 
    } 

    request.setEntity(entity); 

    try { 
     HttpResponse response = client.execute(request, localContext); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return "post"; 

} 

Но как насчет -----------------------------17911109517875 Content-Disposition: form-data; Это устанавливается автоматически MultipartEntity или я должен написать его где-то в коде? Этот код не работает.

Спасибо.

+0

Есть такая же проблема, нашли ли вы решение? – Jim

ответ

0

У меня есть аналогичный код, работающий в личном проекте. This SO question может дать вам несколько советов.

Границы устанавливаются автоматически библиотекой, поэтому вам не нужно заботиться о них, в зависимости от синтаксиса HttpMultipartMode. Я использовал режим STRICT по умолчанию.

Вы добавили additional libraries needed? Те, кто работал для меня ...

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpmime</artifactId> 
    <version>4.2.3</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.james</groupId> 
    <artifactId>apache-mime4j-core</artifactId> 
    <version>0.7.2</version> 
</dependency> 

Можете ли вы предоставить более подробную информацию об ошибке: следы в LogCat или журналы на сервере?

Смежные вопросы