我使用HttpURLConnection
从Java命中服务器。
URL: http://clicks.pureleads.com/c/E1oTzCqNzcgtN8YfNs5wg25lxQ7X8*PEqjqks**E|l9gsgSg6ZyKU7FdR0WkUDvIZ2jgG9hhb1qfSlUJpaojsCMystWBEfw6EacQ4K)zd6CtREq0PA68Uj4rPqLEsBgQdK6pgV88epNw3LF7S3X4erNQmaF26N)47Eb8H9O58bmMrEwGTBJ*avyzVCGxuyuaAoqBkOBafBru3i44S*oP74Wu4toNaTW3onZrpV9qsIqsMb3kC9J2s4RDStFqTAzH0VPlO)ZI0SWtJAchAt76suO2vTJdu6WVynplETGZD4I6DvNiQ1CSnQtSE0G2ing((
对于对网址进行编码,请使用URLEncoder.encode(url, "UTF-8");
Encoded URL:
http://clicks.pureleads.com/c/E1oTzCqNzcgtN8YfNs5wg25lxQ7X8*PEqjqks**E%7Cl9gsgSg6ZyKU7FdR0WkUDvIZ2jgG9hhb1qfSlUJpaojsCMystWBEfw6EacQ4K)zd6CtREq0PA68Uj4rPqLEsBgQdK6pgV88epNw3LF7S3X4erNQmaF26N)47Eb8H9O58bmMrEwGTBJ*avyzVCGxuyuaAoqBkOBafBru3i44S*oP74Wu4toNaTW3onZrpV9qsIqsMb3kC9J2s4RDStFqTAzH0VPlO)ZI0SWtJAchAt76suO2vTJdu6WVynplETGZD4I6DvNiQ1CSnQtSE0G2ing((
当我尝试在浏览器中打开上述网址时,响应代码为OK(200)
。从Java,服务器返回response code 400
。
代码段:
URI uri = new URI("http", "clicks.pureleads.com","/c/E1oTzCqNzcgtN8YfNs5wg25lxQ7X8*PEqjqks**E|l9gsgSg6ZyKU7FdR0WkUDvIZ2jgG9hhb1qfSlUJpaojsCMystWBEfw6EacQ4K)zd6CtREq0PA68Uj4rPqLEsBgQdK6pgV88epNw3LF7S3X4erNQmaF26N)47Eb8H9O58bmMrEwGTBJ*avyzVCGxuyuaAoqBkOBafBru3i44S*oP74Wu4toNaTW3onZrpV9qsIqsMb3kC9J2s4RDStFqTAzH0VPlO)ZI0SWtJAchAt76suO2vTJdu6WVynplETGZD4I6DvNiQ1CSnQtSE0G2ing((",null);
String url = uri.toString();
serverAddress = new URL(url);
connection = (HttpURLConnection) serverAddress.openConnection();
connection.setConnectTimeout(2000);
connection.setReadTimeout(2000);
connection.connect();
还尝试使用URLEncoder.encode(url,"UTF-8")
对网址进行编码。
先谢谢。
答案 0 :(得分:1)
适合我:
URI uri = new URI("http", "clicks.pureleads.com","/c/E1oTzCqNzcgtN8YfNs5wg25lxQ7X8*PEqjqks**E|l9gsgSg6ZyKU7FdR0WkUDvIZ2jgG9hhb1qfSlUJpaojsCMystWBEfw6EacQ4K)zd6CtREq0PA68Uj4rPqLEsBgQdK6pgV88epNw3LF7S3X4erNQmaF26N)47Eb8H9O58bmMrEwGTBJ*avyzVCGxuyuaAoqBkOBafBru3i44S*oP74Wu4toNaTW3onZrpV9qsIqsMb3kC9J2s4RDStFqTAzH0VPlO)ZI0SWtJAchAt76suO2vTJdu6WVynplETGZD4I6DvNiQ1CSnQtSE0G2ing((",null);
String url = uri.toString();
URL serverAddress = new URL(url);
HttpURLConnection connection = (HttpURLConnection) serverAddress.openConnection();
connection.setConnectTimeout(2000);
connection.setReadTimeout(2000);
connection.connect();
InputStream inputStream = connection.getInputStream();
String output = IOUtils.toString(inputStream);
字符串输出包含以下内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Refresh" content="1;URL='http://www.macys.com'">
<title></title>
</head>
<body onload='g();'>
<script type="text/javascript">
var dest_url = "http://www.macys.com"
var back_url = ""
function g() {
if (navigator.userAgent.indexOf("MSIE") != -1) {
//The user has hit back button
if (document.getElementById('final').value == 1) {
document.getElementById('final').value = 0;
//The ad opened in new window
if (document.getElementById('hist').value == 0) {
self.location.replace(back_url);
}
//Ad opened in the same window
else {
history.go(-1);
}
}
else {
//IE doesn't send referrer when used with replace
var created_link = document.createElement("a");
created_link.href = dest_url;
document.body.appendChild(created_link);
//set the back button variable and new window variable
created_link.click(document.getElementById('final').value = 1, document.getElementById('hist').value = history.length);
}
}
else {
if (document.images) {
self.location.replace(dest_url);
}
else {
self.location.href = dest_url;
}
}
}
</script>
<noscript><img src="noscript.gif"></noscript>
<form>
<input type="hidden" name="u" value="0" id="final">
<input type="hidden" name="h" value="-99" id="hist">
</form>
</body>
</html>
答案 1 :(得分:0)
我从执行代码得到200响应,也许你是代理或类似的?