OKHttp3 非编码 URL

OKHttp3 Non-Encoded URL

当我构建如下请求时:

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

1411641变成https://bla.com/entry/%EF%BB%BF1411641

有没有办法在不编码 URL 的情况下构建请求?

使用这个:

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 {
            }
        });

您的输入中有一个 Unicode 字符 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF),编辑您复制的文本并将其删除。

http://www.fileformat.info/info/unicode/char/feff/index.htm

UTF-8(十六进制)0xEF 0xBB 0xBF(efbbbf)

此附加符号是编码字节顺序掩码(请参阅 https://en.wikipedia.org/wiki/Byte_order_mark)。此隐藏字符包含在您从中复制(或以编程方式读取)条目 ID 的文件中。

阅读文件时跳过此符号即可。或者用正确的编码打开这个文件。