当我按如下方式构建请求时:
new Request.Builder()
.url("https://bla.com/entry/1411641")
.build();
1411641
变为https://bla.com/entry/%EF%BB%BF1411641
有没有办法在不编码URL的情况下构建请求?
答案 0 :(得分:1)
你有一个Unicode字符' ZERO WIDTH NO-BREAK SPACE'输入中的(U + FEFF),编辑您复制的文本并将其删除。
http://www.fileformat.info/info/unicode/char/feff/index.htm
UTF-8(十六进制)0xEF 0xBB 0xBF(efbbbf)
答案 1 :(得分:0)
使用此:
new Request.Builder()
.baseUrl("https://bla.com")
.build();
并在界面
@GET("/entry/{id}/")
Call<ResponseBody> getData(@Path("id") String yourId);
答案 2 :(得分: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 {
}
});
答案 3 :(得分:0)
此附加符号是编码字节顺序掩码(请参阅https://en.wikipedia.org/wiki/Byte_order_mark)。此隐藏字符在文件中进行处理,您从该文件中复制(或以编程方式读取)条目ID。
阅读文件时,请跳过此符号。或者使用正确的编码打开此文件。