IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Volley添加http的header发送请求,referer -> 正文阅读

[网络协议]Volley添加http的header发送请求,referer

我最近在网上看了一下获取股票实时数据的方法。网上说输入:http://hq.sinajs.cn/list=sz000001就可以看到实时数据。我下载了一个相关的代码,通过volley获取数据,结果显示请求失败。我在网页上输入这个网址,结果显示:Kinsoku jikou desu!

哎,不管做什么事情都会有很多鸟事,不管做什么产品都会有很多坑,从来都不会顺利。我查了很多网页,有的网页说添加referer,但是没有说其他了。我想怎么添加啊?找来找去,都没找到答案。没人说怎么添加,更没人说怎么在java的volley里面添加。还好,拥有超高理解能力的我,看了很多资料后,我凭空总结到一个方法:http请求数据包里面会有一堆头部数据,要在头部数据里面添加referer和对应的内容。后面我专门搜如何添加http头部的网页。我搜到java版本的添加user-token的方法。我根据我的理解把token改为referer,参数是http://hq.sinajs.cn/list=sz000001。毫无意外,不行。不过,我容易放弃,我就不是我了。我研究referer的作用的同时,我继续搜没法获取数据的文章。后面被我搜到《新浪行情无法接收的解决方法》这个网页。这个网页里面有:req_set(http::field::referer,"http://finance.sina.com.cn")。看到这个,然后再加上我上面的理解,我知道该怎么做了。下面我贴出代码。

? ? ? ?

? ? public class StringRequestWithAuth extends StringRequest {
? ? ? ? public StringRequestWithAuth(int method, String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
? ? ? ? ? ? super(method, url, listener, errorListener);
? ? ? ? }
? ? ? ? public StringRequestWithAuth(String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
? ? ? ? ? ? super(url, listener, errorListener);
? ? ? ? }
? ? ? ? @Override
? ? ? ? public Map<String, String> getHeaders() throws AuthFailureError {
? ? ? ? ? ? Map<String, String> headers = new LinkedHashMap<>();
? ? ? ? ? ? //这样添加头部信息,注意添加的网址。
? ? ? ? ? ? headers.put("referer", "https://finance.sina.com.cn");?
? ? ? ? ? ? return headers;
? ? ? ? }
? ? }


? ? private void refreshView(){
? ? ? ? if(queue==null) {
? ? ? ? ? ? queue = Volley.newRequestQueue(this);
? ? ? ? }

? ? ? ? ?//使用自己定义的类StringRequestWithAuth,这个类继承了StringRequest
? ? ? ? StringRequest stringRequest = new StringRequestWithAuth(Request.Method.GET, idurl,
? ? ? ? ? ? ? ? new Response.Listener<String>() {
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onResponse(final String response) {
? ? ? ? ? ? ? ? ? ? ? ? System.out.println(" ghw 到这里了吗? 4444444444444444444444444444 ");
? ? ? ? ? ? ? ? ? ? ? ? runOnUiThread(new Runnable() {
? ? ? ? ? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? ? ? ? ? public void run() {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //...
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? new Response.ErrorListener() {
? ? ? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? ? ? public void onErrorResponse(VolleyError error) {
? ? ? ? ? ? ? ? ? ? ? ? //...
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? });
? ? ? ? queue.add(stringRequest);
? ? ? ? queue.start();
? ? }

idurl = https://hq.sinajs.cn/list=sz000001 加了一个s。

runOnUiThread只是处理消息,跟volley没有关系。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:56:30  更:2022-03-16 22:57:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:22:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码