b2c信息网

您现在的位置是:首页 > 昨日新闻 > 正文

昨日新闻

url源码得到302(http代码302)

hacker2022-06-09 08:43:22昨日新闻93
本文目录一览:1、为什么HttpClient请求返回400,URL请求返回302正常

本文目录一览:

为什么HttpClient请求返回400,URL请求返回302正常

GET方式提交的数据超长了,不要用GET方式。换成POST方式提交。

把URL的参数提取出来,不要写到URL里面。

是不是如楼上说的,长度超限制了。Get方式长度限制为1024个字节。

我在用android开发时也碰到过相似情况,通过HttpURLConnection获取网页内容时,发出请求一直返回400 。后来查下来是服务端跳转了,设置setInstanceFollowRedirects为false就行。不清楚你是不是类似的原因。

public static void main(String[] args) {

try {

String s = ";sn=863637021737296clk=1";

URL u = new URL(s);

HttpURLConnection openConnection = (HttpURLConnection) u.openConnection();

int responseCode = openConnection.getResponseCode();

InputStream inputStream = openConnection.getInputStream();

System.out.println(responseCode);

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

request.AllowAutoRedirect=true时,是否还能获得301/302状态码?

这个很简单的,你稍等,我写个示例 给你

private string GetWebString(string url)

{

HttpWebRequest h = (HttpWebRequest)HttpWebRequest.Create(url);

h.AllowAutoRedirect = false;

HttpWebResponse r = (HttpWebResponse)h.GetResponse();

//判断是否重定向 Ambiguous 300 Found 302 Moved 301

if (r.StatusCode == HttpStatusCode.Ambiguous || r.StatusCode == HttpStatusCode.Found || r.StatusCode == HttpStatusCode.Moved)

{

string newUrl = r.Headers["Location"];//获取重定向的网址

if (!string.IsNullOrEmpty(newUrl))

{

//此处做你的处理

r.Close();

//获取源码

return GetWebString(newUrl);

}

}

else

{

using (System.IO.StreamReader read = new System.IO.StreamReader(r.GetResponseStream()))

{

string value = read.ReadToEnd();

r.Close();

return value;

}

}

}

如何通过HttpURLConnection得到http 302的跳转地址

如果不想直接跳转到目标地址,想对中间的Location做些处理则可以通过HttpURLConnection实现。 // 必须设置false,否则会自动redirect到Location的地址 conn.setInstanceFollowRedirects(false);

[java] view plaincopyprint?

package com.zuidaima;

import java.net.HttpURLConnection;

import java.net.URL;

/**

* 如何通过HttpURLConnection得到http 302的跳转地址

*

* @author javaniu

*

*/

public class Http302 {

public static void main(String[] args) {

try {

String url = "";

System.out.println("访问地址:" + url);

URL serverUrl = new URL(url);

HttpURLConnection conn = (HttpURLConnection) serverUrl

.openConnection();

conn.setRequestMethod("GET");

// 必须设置false,否则会自动redirect到Location的地址

conn.setInstanceFollowRedirects(false);

conn.addRequestProperty("Accept-Charset", "UTF-8;");

conn.addRequestProperty("User-Agent",

"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");

conn.addRequestProperty("Referer", "");

conn.connect();

String location = conn.getHeaderField("Location");

serverUrl = new URL(location);

conn = (HttpURLConnection) serverUrl.openConnection();

conn.setRequestMethod("GET");

conn.addRequestProperty("Accept-Charset", "UTF-8;");

conn.addRequestProperty("User-Agent",

"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");

conn.addRequestProperty("Referer", "");

conn.connect();

System.out.println("跳转地址:" + location);

} catch (Exception e) {

e.printStackTrace();

}

}

}

dota2错误代码302无法载入此 URL,主机名或格式错误

该问题是因为dota2游戏缺失部分dll文件,通过DX修复工具能解决。步骤如下:

1、直接在主界面中,选择检测并修复跳转。

2、如果没问题,就进入相关的进程。

3、下一步,继续确定修复完成。

4、这个时候,需要点击桌面对应的快捷方式。

5、会弹出新的窗口,启动运行DOTA 2的按钮。

6、这样一来等得到图示的结果以后,即可实现要求了。

怎么获取Url经过302跳转之后的真实地址

遇到个需求,需要自己获取到302代码,且要根据返回的跳转地址从新跳转到相应的地址。

如果不想直接跳转到目标地址,想对中间的Location做些处理则可以通过HttpURLConnection实现。实现方法是conn.setInstanceFollowRedirects(false);然后在获取到response之后,发现resposnecode为302时,用以下方法取出跳转地址,String location= conn.getHeaderField("Location");然后再根据新的地址跳转即可。

发表评论

评论列表

  • 慵吋倾酏(2022-06-09 09:53:38)回复取消回复

    一步,继续确定修复完成。4、这个时候,需要点击桌面对应的快捷方式。5、会弹出新的窗口,启动运行DOTA 2的按钮。6、这样一来等得到图示的结果以后,即可实现要求了。怎么获取Url经

  • 怎忘只酷(2022-06-09 10:36:51)回复取消回复

    lose(); return value; } } }如何通过HttpURLConnection

  • 绿邪安娴(2022-06-09 16:19:04)回复取消回复

    sponseCode = openConnection.getResponseCode(); InputStream inputStream = openConnection.getInputStream(); System.

  • 可难抹忆(2022-06-09 10:52:31)回复取消回复

    u = new URL(s); HttpURLConnection openConnection = (HttpURLConnection) u.openConnection(); int responseCode = op