gpt4 book ai didi

java - 使用 OkHttp 进行时间戳请求

转载 作者:行者123 更新时间:2023-12-02 00:47:41 27 4
gpt4 key购买 nike

我正在尝试对时间戳服务器进行后调用,但收到 500。这是我的代码:

        Security.addProvider(new BouncyCastleProvider());

TimeStampRequestGenerator reqGen = new TimeStampRequestGenerator();
reqGen.setCertReq(true);

MessageDigest digest = MessageDigest.getInstance("SHA256");
digest.update(myData);
TimeStampRequest request = reqGen.generate(TSPAlgorithms.SHA256, digest.digest(), BigInteger.valueOf(100));

MediaType type = MediaType.parse("application/ocsp-request");
RequestBody requestBody = RequestBody.create(type, request.getEncoded());

Request request = new Request.Builder()
.url(myUrl)
.post(requestBody)
.addHeader("Content-type", "application/timestamp-query")
.addHeader("Content-Transfer-Encoding", "binary")
.addHeader("Authorization", Credentials.basic(myUser, myPass))
.build();

httpClient.newCall(request).enqueue(new Callback() {
public void onFailure(Call call, IOException e) {
Log.e(myTAG, "Error connecting to timestamp server");
}

public void onResponse(Call call, Response response) {
Log.e(myTAG, "Success");
}
});

我知道 header 、凭据和 url 都正确,但我不确定是否将 TimeStampRequest 正确添加到 OkHttp 请求中,或者即使 MediaType 是它应该添加的类型。有人知道这是否正确吗?

注意:TimeStamp 类属于 spongycaSTLe 库。

最佳答案

事实证明,不正确的部分是MediaType,它必须是binary,服务器才能正确读取数据。更正代码:

MediaType type = MediaType.parse("binary");

关于java - 使用 OkHttp 进行时间戳请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57884946/

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