gpt4 book ai didi

android - 如何处理 JSON 负载的解密

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:03 27 4
gpt4 key购买 nike

我有一个从服务器返回的 JSON 负载,但它是加密的。

假设改造调用如下所示:

@GET("/user/{id}/userprofile")  
void listUserProfile(@Path("id") int id, Callback<UserProfile> cb);

那么我如何告诉改造首先解密有效负载,然后使用 gson 将 json 转换为 POJO(在本例中为 UserProfile 对象)?我正在为 http 客户端使用 okHttp。

最佳答案

可能为您的 OkHttp 客户端编写一个应用程序 Interceptor 来解密正文就可以了:

public class DecryptedPayloadInterceptor implements Interceptor {

private final DecryptionStrategy mDecryptionStrategy;

public interface DecryptionStrategy {
String decrypt(InputStream stream);
}

public DecryptedPayloadInterceptor(DecryptionStrategy mDecryptionStrategy) {
this.mDecryptionStrategy = mDecryptionStrategy;
}

@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
if (response.isSuccessful()) {
Response.Builder newResponse = response.newBuilder();
String contentType = response.header("Content-Type");
if (TextUtils.isEmpty(contentType)) contentType = "application/json";
InputStream cryptedStream = response.body().byteStream();
String decrypted = null;
if (mDecryptionStrategy != null) {
decrypted = mDecryptionStrategy.decrypt(cryptedStream);
} else {
throw new IllegalArgumentException("No decryption strategy!");
}
newResponse.body(ResponseBody.create(MediaType.parse(contentType), decrypted));
return newResponse.build();
}
return response;
}
}

如果你没有使用 OkHttp,我会优雅地删除答案。

关于android - 如何处理 JSON 负载的解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32656953/

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