- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 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看来请求的实体是
the majority of an HTTP request or response, consisting of some of the headers and the body, if present. It seems to be the entire request or response without the request or status line
但是这个定义让我感到困惑,因为我找不到与 OkHttp 中的“ header 和正文”等价的东西。我尝试过的:
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)。有谁知道正确的等价物吗?
最佳答案
我终于找到了答案:我可以像以前一样使用编码的TimeStampRequest,无需任何修改。正如我所想,更改仅针对 setEntity。
这是使用 OkHttp 的请求:
MediaType textPlain = MediaType.parse("binary");
RequestBody requestBody = RequestBody.create(textPlain, request.getEncoded());
Request myNewRequest = (new Request.Builder()).url(urlString).post(requestBody).build;
正如您所看到的,与我尝试的先前代码相比,唯一的变化是我使用 binary
作为MediaType
,这是有意义的,因为我们发送的是一个字节数组(之前从 Apache 客户端使用 ByteArrayEntity
)。
希望它对某人有帮助。
关于java - OkHttp 中的 setEntity 等效项 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866382/
在我的 android 应用程序中,我试图通过后请求从我的服务器获取(在异步任务中)一个 json 字符串: ... HttpClient httpClient = n
HttpDelete 是否包含 setEntity()、HttpPost 或 HttpPut 之类的方法?当我使用 HttpPost 时,我会做这样的事情: httppost.setEntity(ne
我正在尝试向 node.js 服务器发帖,但出于某种原因,无论我尝试什么,正文对我来说总是空的。我现在正在对 requestb.in 进行测试,它在那里也总是空的。 这是我用于发布的代码: publi
我正在尝试对使用 org.apache 包中的类的早期项目进行改造。 之前我有这样的代码 url.addParameters(url,param); // add query parameters H
我最近转向 Retrofit,我想用 Retrofit 替换这个 httpost 集实体。我该怎么做。 JSONObject jsonObject = new JSONObject();
在 HttpPost 中,这会 append 到 header httppost.setHeader("User-Agent", "AFHttpClient/1.0"); httppo
我正在从 Apache HTTP 旧版客户端迁移到 OkHttp,但在寻找两者之间的等效项时遇到一些问题。几天前,我询问了同一主题的凭据,现在我再次陷入困境: 在旧的实现中我有这个: TimeStam
我用 AndroidStudio 开发 AndroidApps 我开始做一个简单的 HttpPost 请求,我遇到了一个问题,我能找到的所有帖子都是这样做的: private void CheckLo
这个问题在这里已经有了答案: How to set content-length in android? (1 个回答) 关闭 9 年前。 我已经设置了几乎所有的数据: String capcha
我正在使用此代码将其发送到我的 php 文件。该文件看起来像这样。 file_put_contents('dump.txt', "POST: \n" . print_r($_POST, true) .
在 httpPost 中我们设置了 Entity(new StringEntity)。但我现在正在使用截击。我想在 volley 中使用 setEntity 方法。我该怎么做? 我想像这样将它与 Tw
我尝试用这个删除一个参数: private class SendfeedbackDeleteStudio extends AsyncTask { private static final St
我目前正在使用 HttpPost 和 HttpPut 将实体从我的移动应用程序发送到服务器。我正在使用 setEntity 将实体从数据库发送到服务器,它简单、直接并且运行良好,但它现在已从版本 23
我是一名新的 golang 程序员。在 java 中,使用 HTTP.setEntity() 方法很容易设置。但在 golang 中,我有测试服务器的方式来设置它,但我们的服务器仍然缺少接收实体数据。
我正在尝试使用从网站获得的一些代码,该网站通过 API ( http://developer.fantasydata.com ) 公开提供体育数据。 该站点提供了一些示例 JAVA 代码来发出 htt
我正在尝试通过调用网络服务上传设备摄像头拍摄的图像,服务器代码使用 PHP。 首先我将位图转换为字符串 ByteArrayOutputStream stream = new ByteArrayOutp
我是一名优秀的程序员,十分优秀!