当前位置: 首页 > news >正文

Java 通过 HttpURLConnection发送 http 请求

问题:

在调试 kill 接口的时候,对方的服务用的是 Django RestFramework 框架提供的接口,用 python 请求时得到的内容如下:

➜  ~ python3 test.py
<Response [200]> "true"  // 对应的代码是 print(response, response.text)
➜  ~

用 Java 请求时,得到的response 内容是 html 格式的字符串如下:

<!DOCTYPE html><html>  <head>                  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <meta name="robots" content="NONE,NOARCHIVE" />            <title>Api Kill Session View Outer – Django REST framework</title>                        <link rel="stylesheet" type="text/css" href="/static/rest_framework/css/bootstrap.min.css"/>          <link rel="stylesheet" type="text/css" href="/static/rest_framework/css/bootstrap-tweaks.css"/>                <link rel="stylesheet" type="text/css" href="/static/rest_framework/css/prettify.css"/>        <link rel="stylesheet" type="text/css" href="/static/rest_framework/css/default.css"/>                    </head>    <body class="">    <div class="wrapper">              <div class="navbar navbar-static-top navbar-inverse"             role="navigation" aria-label="navbar">          <div class="container">            <span>                              <a class='navbar-brand' rel="nofollow" href='https://www.django-rest-framework.org/'>                    Django REST framework                </a>                          </span>            <ul class="nav navbar-nav pull-right">                                                                                          </ul>          </div>        </div>            <div class="container">                  <ul class="breadcrumb">                                          <li class="active"><a href="/cleverdb/kill_session_outer/">Api Kill Session View Outer</a></li>                                    </ul>                <!-- Content -->        <div id="content" role="main" aria-label="content">                    <div class="region"  aria-label="request form">                                                    <form class="button-form" action="/cleverdb/kill_session_outer/" data-method="OPTIONS">              <button class="btn btn-primary js-tooltip" title="Make an OPTIONS request on the Api Kill Session View Outer resource">OPTIONS</button>            </form>                                                            </div>            <div class="content-main" role="main"  aria-label="main content">              <div class="page-header">                <h1>Api Kill Session View Outer</h1>              </div>              <div style="float:left">                                  <p></p>                              </div>                            <div class="request-info" style="clear: both" aria-label="request info">                <pre class="prettyprint"><b>POST</b> /cleverdb/kill_session_outer/</pre>              </div>              <div class="response-info" aria-label="response info">                <pre class="prettyprint"><span class="meta nocode"><b>HTTP 200 OK</b><b>Allow:</b> <span class="lit">POST, OPTIONS</span><b>Content-Type:</b> <span class="lit">application/json</span><b>Vary:</b> <span class="lit">Accept</span></span>&quot;true&quot;</pre>              </div>            </div>                                          <div >                                    <div class="well tab-content">                                        <div  id="post-generic-content-form">                                              <form action="/cleverdb/kill_session_outer/" method="POST" class="form-horizontal">                          <fieldset>                              <div class="form-group">    <label for="id__content_type" class="col-sm-2 control-label">Media type:</label>    <div class="col-sm-10">      <select name="_content_type" data-override="content-type" id="id__content_type" class="form-control">  <option value="application/json" selected>application/json</option>  <option value="application/x-www-form-urlencoded">application/x-www-form-urlencoded</option>  <option value="multipart/form-data">multipart/form-data</option></select>      <span class="help-block"></span>    </div>  </div>  <div class="form-group">    <label for="id__content" class="col-sm-2 control-label">Content:</label>    <div class="col-sm-10">      <textarea name="_content" cols="40" rows="10" data-override="content" id="id__content" class="form-control"></textarea>      <span class="help-block"></span>    </div>  </div>                            <div class="form-actions">                              <button class="btn btn-primary js-tooltip" title="Make a POST request on the Api Kill Session View Outer resource">POST</button>                            </div>                          </fieldset>                        </form>                                          </div>                  </div>                </div>                                                          </div><!-- /.content -->      </div><!-- /.container -->    </div><!-- ./wrapper -->              <script>        window.drf = {          csrfHeaderName: "X-CSRFTOKEN",          csrfToken: "UTWfNXFtkvK22TARPKMKseWa1XQfiO8pjSAIq1n0cLxk0X4AyquXToGSpgGPatXe"        };      </script>      <script src="/static/rest_framework/js/jquery-3.4.1.min.js"></script>      <script src="/static/rest_framework/js/ajax-form.js"></script>      <script src="/static/rest_framework/js/csrf.js"></script>      <script src="/static/rest_framework/js/bootstrap.min.js"></script>      <script src="/static/rest_framework/js/prettify-min.js"></script>      <script src="/static/rest_framework/js/default.js"></script>      <script>        $(document).ready(function() {          $('form').ajaxForm();        });      </script>      </body>  </html>

在这里插入图片描述

方案

后来经过分析:增加如下设置就好了,
httpURLConnection.setRequestProperty(“Accept”, “application/json”);
该值默认是 text/html

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/290853.html

相关文章:

  • CG-04 翻斗式雨量传感器 分辨率0.1mm,0.2mm可选择 金属材质
  • 数据结构自学Day11-- 排序算法
  • 使用 Longformer-base-4096 进行工单问题分类
  • Redis进阶--缓存
  • Ubuntu 22.04 安装 MySQL 8.0 完整步骤文档
  • 计算机网络中:传输层和网络层之间是如何配合的
  • 7月21日星期一今日早报简报微语报早读
  • 计算机史前时代:从原始计数到机械曙光
  • 计算机发展史:集成电路时代的微缩革命
  • Android 实例 - 分页器封装实现(上一页按钮、下一页按钮、当前页码 / 总页数、每页条数、总记录数)
  • 本地部署AI新选择!LocalAI+cpolar轻松实现隐私安全的远程访问
  • 数据结构:找出字符串中重复的字符(Finding Duplicates in a String)——使用哈希表
  • 一文彻底解释清楚Java 中的NIO、BIO和AIO
  • 记录解决问题--maven本地已有依赖,还是去远程仓库下载,导致打包失败
  • 期权到期会对大盘有什么影响?
  • 本地Linux服务器使用Docker快速部署SyncTV
  • 关于Aop动态代理
  • 线上问题排查之【CPU飙高100%】
  • 深入理解 C++ 中的指针与自增表达式:*a++、(*a)++ 和 *++a 的区别解析
  • spring入门
  • EMBMS1820芯祥科技18单元电池监控器芯片数据手册
  • MySQL二进制包安装
  • OpenAI Codex CLI与 Google Gemini CLI 比较
  • Match宣布2025曼谷发布会,发布“保本”资管新范式,旨在重塑Web3投资规则
  • 【科研绘图系列】R语言绘制棒棒图和哑铃图
  • neuronxcc包介绍及示例代码
  • IOPaint+CPolar:零公网IP也能搭建专属AI图像编辑平台
  • 【设计模式】迭代器模式 (游标(Cursor)模式)
  • 编程基础:职责分配
  • 14.7 Alpaca格式深度解析:3倍指令准确率提升的LLM微调秘诀