2016-10-28 5 views
0

zu schreiben Wie wie in AndroidHttpClient von okhttp3 mit Codierung params schreiben:Wie aus okhttp3 mit Codierung params

List<NameValuePair> values.. 

((HttpPost) request).setEntity(new UrlEncodedFormEntity(values, "windows-1251")) 

i

FormBody.Builder formBuilder = new FormBody.Builder(); 
    for (NameValuePair nameValuePair : values) { 
     formBuilder.add(nameValuePair.getName(), nameValuePair.getValue()); 
    } 

    Log.d(TAG, "post: " + url); 
    Request request = new Request.Builder() 
      .addHeader("Content-Type", "text/plain; charset=windows-1251") 
      .url(url) 
      .cacheControl(CacheControl.FORCE_NETWORK) 
      .post(formBuilder.build()) 
      .build(); 
    Response response = client.newCall(request).execute(); 

versucht, aber es hilft nicht

Antwort

0

Verwenden Sie public static final MediaType MEDIA_TYPE_MARKDOWN = MediaType.parse("text/plain; windows-1251"); wie in okhttp wiki

public static final MediaType MEDIA_TYPE_MARKDOWN 
     = MediaType.parse("text/x-markdown; charset=utf-8"); 

    private final OkHttpClient client = new OkHttpClient(); 

    public void run() throws Exception { 
    File file = new File("README.md"); 

    Request request = new Request.Builder() 
     .url("https://api.github.com/markdown/raw") 
     .post(RequestBody.create(MEDIA_TYPE_MARKDOWN, file)) 
     .build(); 

    Response response = client.newCall(request).execute(); 
    if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); 

    System.out.println(response.body().string()); 
    } 
Verwandte Themen