【发布时间】:2019-09-10 07:56:19
【问题描述】:
我正在从 Apache HTTP 旧版客户端迁移到 OkHttp,但在查找两者之间的等价关系时遇到了一些问题。几天前,我询问了有关同一主题的凭据,现在我又陷入了困境:
在旧的实现中我有这个:
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));
byte[] enc_req = request.getEncoded();
myHttpPost.setEntity(new ByteArrayEntity(enc_req));
最相关的行是最后一行(因为其他行只是构建请求,幸运的是,我不需要更改它们),它将实体添加到 HttpPost。
检查this answer似乎请求的实体是
HTTP 请求或响应的大部分内容,包括一些标头和正文(如果存在)。似乎是没有请求或状态行的整个请求或响应
但是这个定义让我感到困惑,因为我在 OkHttp 中找不到与“标题和正文”的等价物。我试过的:
MediaType textPlain = MediaType.parse("text/plain; charset=utf-8");
RequestBody requestBody = RequestBody.create(textPlain, request.getEncoded().toString());
Request myNewRequest = (new Request.Builder()).url(urlString).post(requestBody).build();
但它不起作用(我从服务器获得 500)。有谁知道正确的等价物吗?
【问题讨论】:
标签: java android okhttp apache-httpcomponents