如何使用 HttpURLConnection 在 Java 中等待 Expect 100-Continue 响应

2023-12-06

I am stuck使用 HttpURLConnection 向 Web 服务器发出 PUT http 请求。我有一些代码可以很好地发出 PUT 请求,并且我可以在标头中简单地包含“期望 100-继续请求属性”,但是尽我所能尝试,我似乎无法让该函数等待“100 继续” ' 在发送实际的 http 有效负载之前来自服务器的响应。

我得到以下信息(来自 Wireshark)

PUT /post/ HTTP/1.1
User-Agent: curl/7.35.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
Host: somerandomdomain.info
Connection: keep-alive
Content-Length: 17

Some data for you
HTTP/1.1 100 Continue

...rest of web-server response...

我确信我错过了一些明显的东西,但是在谷歌搜索后我画了一个空白 - 有人可以帮忙吗?

如果是的话,非常感谢:)

Http PUT 代码片段如下:

String url =   "http://somerandomdomain.info";
String postJsonData = "Some data for you\n";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();

// Setting basic post request  
con.setRequestMethod("PUT");
con.setRequestProperty("User-Agent", "jcurl/7.35.0");
con.setRequestProperty("Accept", "*/*");
con.setRequestProperty("Content-Length", postData.length() + "");
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Expect", "100-continue");

// Send post request  
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(postData);
wr.flush();
wr.close();

int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post Data : " + postData);
System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String output;
StringBuffer response = new StringBuffer();

while ((output = in.readLine()) != null) {
  response.append(output);
}

in.close();

//printing result from response  
System.out.println(response.toString());

对我来说,他们为什么这样设计并不明显,但实现 Expect:100 逻辑的代码仅在您调用了以下之一时才会使用setFixedLengthStreamingMode(int contentlen) or 的过载long or setChunkedStreamingMode(int chunklen)在做之前getOutputStream。在这种情况下,我推荐第一个,因为最简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 HttpURLConnection 在 Java 中等待 Expect 100-Continue 响应 的相关文章

  • Hibernate 4 字节码增强不适用于脏检查优化

    我正在使用 Hibernate 4 3 6 并且我使用了最新的Maven 字节码增强 http vladmihalcea com hibernate 4 bytecode enhancement 使所有实体提高自我肮脏意识 我添加了mave
  • Android 中的 java.util.Observable 是线程安全的吗?

    Android 中的 java util Observable 是线程安全的吗 这文档 http developer android com reference java util Observable html说只有deleteObser
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • 我可以从 HTTP 请求中找到无线接入点的 BSSID(MAC 地址)吗?

    假设有人在咖啡店里无线连接到互联网 并向 johnsveryownserver com 发送 HTTP 请求 服务器端 有什么方法可以确定我的MAC地址吗 无线接入点他们连接到什么 请注意 我对他们机器的 MAC 地址不感兴趣 如果我无法使
  • 探索java图像处理的好资源[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是图像处理领域的新手 请推荐一些好的资源 书籍和网络链接 来学习 Java 中的图像处理 最适合隐写术分析 适合初学者和高级水平 我看过
  • 如何停止使用扫描仪从标准输入读取多行?

    我正在做一个 JAVA 作业 应该处理多行输入 指令显示 输入是从标准输入读取的 给出了示例输入的示例 one 1 two 2 three 3 我不明白上面的示例输入 从标准输入读取 是什么意思 这是我编写的一个测试程序 它可以消除我的困惑
  • Ant 中回显目标描述

  • 如何修复maven错误JAVA_HOME环境变量未正确定义

    当我在虚拟环境中检查maven的版本时 出现以下错误 The JAVA HOME environment variable is not defined correctly This environment variable is need
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • Java:不使用 Arrays.sort() 对整数数组进行排序

    这是我们 Java 课程的练习之一中的说明 首先 我想说我 做了我的功课 我不仅仅是懒惰地请 Stack Overflow 上的人帮我回答这个问题 在所有其他练习中 这个特定项目一直是我的问题 因为我一直在努力寻找 完美的算法 编写JAVA
  • 如何将测试类打包到jar中而不运行它们?

    我正在努力将我的测试类包含到 jar 包中 但不运行它们 经过一番谷歌搜索后 我尝试过mvn package DskipTests 但我的测试类根本没有添加到 jar 中 有任何想法吗 如果您遵循 Maven 约定 那么您的测试类位于src
  • EJB 中 @Stateless 相对于 @Singleton 的真正用例是什么

    如果我正确理解EJB Singleton实际上与普通Java中的Singleton相同 也是spring中的单例 gt 一个实例 每个调用同时通过同一个实例 Stateless 声明一个 bean 它可以 但不得 具有多个实例 但限制是一个
  • 单元测试、集成测试还是设计中的问题?

    我编写了我的第一个单元测试 我认为它过于依赖其他模块 我不确定是否是因为 这是一个复杂的测试 我实际上已经编写了集成测试或 我的设计有问题 我首先要说的是 虽然我有大约 4 年的开发经验 但我从未学过 也没有人教过自动化测试 我刚刚使用 H
  • 如何从 Trie 中检索给定长度的随机单词

    我有一个简单的 Trie 用来存储大约 80k 长度为 2 15 的单词 它非常适合检查字符串是否是单词 但是 现在我需要一种获取给定长度的随机单词的方法 换句话说 我需要 getRandomWord 5 来返回 5 个字母的单词 所有 5
  • 在片段之间切换时底部导航栏会向下推

    在我的活动中 我有一个底部导航栏和框架布局来显示片段 一切正常 但问题是当我开始按顺序从 1 4 移动时 底部导航栏保持在其位置 但当我突然从 4 跳到2 然后底部导航栏就会超出屏幕 当再次单击同一项目时 它就会回到正常位置 该视频将清楚地
  • 如何在 Java 中创建一个带有连字符的值的静态枚举?

    如何创建如下所示的静态枚举 static enum Test employee id employeeCode 截至目前 我遇到了错误 这对于 Java 来说是不可能的 因为每个项目都必须是有效的标识符 并且有效的 Java 标识符可能不包
  • 设置 Firefox 配置文件以使用 Selenium 和 Java 自动下载文件

    我想使用 Selenium WebDriver 和 Java 验证文件下载 要下载的文件为 PDF 格式 当 WebDriver 单击 AUT 中的 下载 链接时 Firefox 将打开以下下载确认窗口 我希望 Firefox 自动下载文件
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • 匹配具有命名空间属性的 XML 元素时出现问题

    如果我要使用 xslt 将一段文本插入下面的 xml 中 条件语句会是什么样子
  • Java 泛型 - 无界通配符到底是什么?

    如果我有以下代码 public static void main String args List
  • 将辅助 X 轴标签添加到带有一个 X 轴的 ggplot

    编辑 这里有两个很好的解决方案 一个被标记为答案 但是 hrbrmstr提供了一个很好的解决方案 结合了两个ggplots 它非常适合这个简单的图 这是代码 breaks major lt c 0 15 37 5 52 5 67 5 82
  • Log4J 不在日志文件条目之间添加换行符

    我刚刚开始使用 log4j 我在读取属性文件和实际记录事件时没有问题 但它似乎将所有内容都附加到同一行的末尾 我的属性文件如下所示 A1 is set to be a ConsoleAppender log4j appender A1 or
  • Silverstripe 3.1.5 - 上传错误 SyntaxError:意外的标记 <

    我需要上传 svg 文件 为此 我将 svg 添加到我的 config yml 上传字段允许的扩展名以及 asset 中的 htacces 另外 我的所有资产目录都有 CHMOD 777 文件已上传但未附加 相反 我在上传字段中收到此错误语
  • 使用CSS调整图像大小

    我正在尝试仅使用 css 调整图像大小 它正在调整大小 但由于某种原因它没有拉伸到浏览器的 100 我想要的是它将调整给定高度的图像大小 但宽度在整个浏览器中应该为 100 我创建了一个小提琴作为演示 以便您可以看到发生了什么 div cl
  • BASH:错误消息未重定向到文件

    我有一个 bash 脚本 它只是调用不同的调用并将 stdout 和 stderr 输出重定向到不同的文件 我已经这样做了 command 1 gt datafile 2 gt gt errorfile 但是 当命令错误时 例如 作为参数给
  • 检查字符串列表 A 中的任何项目是否是字符串列表 B 中项目的子字符串

    我正在尝试对一组匹配器和一组字符串进行排序 这样如果我有 matchers foo bar abc and strings afooa zbarz abcabc purple foobar 我希望能够获得以下任何元素strings其中任意元
  • 如何在 Access 2010 中使用 .mdw 文件

    在 Access 2010 中 如何打开需要使用 mdw 文件的数据库 在 Access 2003 中创建 在 Access 2003 中 您必须首先引用 mdw 文件 我不知道如何在 Access 2010 中执行此操作 有人可以告诉我如
  • 获取ActiveMQ中的队列名称列表

    我尝试过下面的代码来获取 ActiveMQ 中的队列列表 但它不起作用 我的 ActiveMQ 有 4 个队列 try ActiveMQConnection makeConnection URL start Set
  • WaitForElementClickable/可见 - Selenium C#

    我需要实现并修改我当前的方法来完成这两件事 等待元素可见 当前已实现 但仍使用预期状况这是过时的并且might be改变 等待可点击的元素 当我的测试运行时 它面临 加载圆圈 的问题 我按下按钮 在加载窗口之前 有一个加载程序 需要 1 到
  • 使用 Google App Engine 的 NDB 创建异步方法

    我想确保我了解如何创建微线程和异步方法 我拥有的是一个返回列表的方法 我希望从某个地方调用它 并立即允许进行其他调用 所以我有这个 future 1 get updates for user userKey aDate future 2 g
  • heroku 推送被拒绝,无法编译 Ruby 应用程序

    当我运行命令 git push f heroku 时 出现以下问题 获取存储库 完成 数物体 55 完成 增量压缩最多使用 4 个线程 压缩对象 100 30 30 完成 写入对象 100 35 35 9 26 KiB 0 字节 秒 完成
  • 数据库设计:识别外键有什么意义?

    我正在使用 MySQL Workbench 来建模我的数据库 在其中 我可以选择通过识别外键等来创建关系 这有什么意义 没有这些关系我就可以很好地运行我的查询 我的表确实有一个实际的外键列 我只是没有在 MySQL Workbench 中定
  • android 中如何检测来电掉线

    我正在编写一个应用程序 该应用程序在电话通话期间在后台运行 并在通话结束后将坐标记录到文件中 我知道 Android 电话 API 可以检测用户手动断开呼叫 纠正我 如果我错了 但我想知道服务断开是否是由于掉话造成的 有没有办法或API可以
  • 使用 SortableBindingList 的 DataGridView

    我有一个返回 IList 的函数 它是 DataGridView 的数据源 我了解到 DataGridView 不会对 IList 进行排序 我读这个 stackoverflow 问答我正在尝试实现 SortableBindingList
  • 通过将图像高度设置为容器高度来使图像适合其容器

    假设我有container a 它有一定的高度 以像素为单位 假设我在container a中有另一个container b 它是container a的80 现在假设我想将具有一定高度 以像素为单位 的图像放入容器中 b 如何使图像与co
  • 即使在 FormsAuthentication.SignOut() 之后 User.IsOnline = true

    我已在 web config 中设置 UserIsOnlineTimeWindow 2 然后我的 logout 函数已修改为 public ActionResult LogOff MembershipUser usr Membership
  • 使用D3,语义缩放可以应用于径向树吗?

    我用的是D3节点链接树 并且我在尝试对其应用语义缩放时遇到困难 我已经花了一些时间大惊小怪 试图让它发挥作用 所以我想我会在这里问 在我花更多时间之前看看它是否可能 我不确定语义缩放是否是线性的 仅此而已 编辑 工作解决方案 这是我的工作解
  • 如何使用 HttpURLConnection 在 Java 中等待 Expect 100-Continue 响应

    I am stuck使用 HttpURLConnection 向 Web 服务器发出 PUT http 请求 我有一些代码可以很好地发出 PUT 请求 并且我可以在标头中简单地包含 期望 100 继续请求属性 但是尽我所能尝试 我似乎无法让