2017-12-28 16 views
0

私は以下のようにリクエストを構築:OKHttp3非エンコードされたURL

new Request.Builder() 
      .url("https://bla.com/entry/1411641") 
      .build(); 

1411641はURLをエンコードすることなく、要求を構築する方法はありhttps://bla.com/entry/%EF%BB%BF1411641

なり?

+2

この文字は元のURLにはありませんでしたか? OKHttpはそのようなことを追加しません。 – Henry

答えて

0

使用この:

new Request.Builder() 
      .baseUrl("https://bla.com") 
      .build(); 

とインタフェースで

@GET("/entry/{id}/") 
Call<ResponseBody> getData(@Path("id") String yourId); 
0

使用この:

final Request request = new Request.Builder() 
.url(HttpUrl.parse("https://bla.com").newBuilder().addPathSegment("entry").addPathSegment("1411641").build()) 
       .post(formBody) 
       .build(); 
OkHttpClient client = new OkHttpClient(); 
client.newCall(request).enqueue(new Callback() { 
      @Override 
      public void onFailure(@NonNull Call call, @NonNull IOException e) { 

      } 

      @Override 
      public void onResponse(@NonNull Call call, @NonNull final Response response) throws IOException { 
      } 
     }); 
0

この追加のシンボルが符号化されるバイト順マスク(https://en.wikipedia.org/wiki/Byte_order_markを参照)。この隠された文字は、あなたがエントリーのIDをコピーした(またはプログラムで読み取った)ファイルの中にあります。

ファイルを読むときにこの記号をスキップするだけです。または、適切なエンコーディングでこのファイルを開きます。

+0

多分これです:https://stackoverflow.com/questions/33510700/excel-files-with-byte-order-mark-for-utf-8-causing-errors私はそのショットを与えるでしょう。ありがとう! – arin

+0

http://www.fileformat.info/info/unicode/char/feff/index.htm UTF-8(16進数)\t 0xEF 0xBB 0xBF(efbbbf) –

関連する問題