gpt4 book ai didi

android - 如果 url 字符串包含 "~"符号,则改造调用错误的 url 会导致 404 错误

转载 作者:行者123 更新时间:2023-11-29 16:32:32 24 4
gpt4 key购买 nike

我已经创建了改造客户端和 api 接口(interface),但是改造跳过了 url 中的某些部分并调用了错误的 url

这是完整的网址 http://192.168.0.201/~amol/eflbudget/budgetmanagements/test

改造调用的url http://192.168.0.201/budgetmanagements/test/

这会导致 404 错误

//here is my retrofit client code 

public static Retrofit getClient() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();

if (retrofit != null) {
return retrofit;
}

Gson gson = new GsonBuilder()
.setLenient()
.create();

retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.0.201/")
.addConverterFactory(GsonConverterFactory.create(gson))
.client(client)
.build();

return retrofit;
}

// below is api call
@Multipart
@POST("/~amol/eflbudget/budgetmanagements/test/")
Call<ResponseBody> postMail(
@Part("user_id") RequestBody userId,
@Part("lead_id") RequestBody leadId,
@Part("to") RequestBody to,
@Part("cc_to") RequestBody ccId,
@Part("template_id") RequestBody tempId,
@Part("sender") RequestBody senderId,
@Part("subject") RequestBody subject,
@Part("message") RequestBody message,
@Part MultipartBody.Part file
);

预期的 API 网址:http://192.168.0.201/~amol/eflbudget/budgetmanagements/test

实际网址: http://192.168.0.201/budgetmanagements/test/

这里/~amol/eflbudget url 中的这一部分被忽略了
有人可以在这里提出建议吗?

最佳答案

RFC以下字符:

未保留字符

URI 中允许但没有保留的字符目的被称为毫无保留。这些包括大写和小写字母、十进制数字、连字符、句点、下划线和波浪号。

  unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"

Berners-Lee 等人。标准轨道 [第 13 页]

RFC 3986 URI 通用语法 2005 年 1 月

在用它对应的百分比编码的 US-ASCII 八位字节是等价的:它们识别相同的资源。然而,URI 比较实现并不总是在比较之前执行归一化(参见第6).为了保持一致性,ALPHA 范围内的百分比编码八位字节(%41-%5A 和 %61-%7A),数字(%30-%39),连字符(%2D),句点(%2E),URI 不应创建下划线 (%5F) 或波浪号 (%7E)生产者,当在 URI 中找到时,应该解码为他们的URI规范化器对应的非保留字符。

关于android - 如果 url 字符串包含 "~"符号,则改造调用错误的 url 会导致 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54104092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com