私は以下のようにリクエストを構築:OKHttp3非エンコードされたURL
new Request.Builder()
.url("https://bla.com/entry/1411641")
.build();
1411641
はURLをエンコードすることなく、要求を構築する方法はありhttps://bla.com/entry/%EF%BB%BF1411641
なり?
私は以下のようにリクエストを構築:OKHttp3非エンコードされたURL
new Request.Builder()
.url("https://bla.com/entry/1411641")
.build();
1411641
はURLをエンコードすることなく、要求を構築する方法はありhttps://bla.com/entry/%EF%BB%BF1411641
なり?
あなたが持っているのUnicode文字 'ZERO WIDTH NO-BREAKのSPACE'(U + FEFF)を入力し、コピーしたテキストを編集して削除します。
http://www.fileformat.info/info/unicode/char/feff/index.htm
UTF-8(16進数)0xEFという0xBB 0xbfの(efbbbf)
使用この:
new Request.Builder()
.baseUrl("https://bla.com")
.build();
とインタフェースで
@GET("/entry/{id}/")
Call<ResponseBody> getData(@Path("id") String yourId);
使用この:
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 {
}
});
この追加のシンボルが符号化されるバイト順マスク(https://en.wikipedia.org/wiki/Byte_order_markを参照)。この隠された文字は、あなたがエントリーのIDをコピーした(またはプログラムで読み取った)ファイルの中にあります。
ファイルを読むときにこの記号をスキップするだけです。または、適切なエンコーディングでこのファイルを開きます。
多分これです:https://stackoverflow.com/questions/33510700/excel-files-with-byte-order-mark-for-utf-8-causing-errors私はそのショットを与えるでしょう。ありがとう! – arin
http://www.fileformat.info/info/unicode/char/feff/index.htm UTF-8(16進数)\t 0xEF 0xBB 0xBF(efbbbf) –
この文字は元のURLにはありませんでしたか? OKHttpはそのようなことを追加しません。 – Henry