与google-app-engine通信时出现错误302

use*_*360 1 java google-app-engine android http

我正在运行一个java代码,用于从google-app-engine网络服务(testeserjaum.appspot.com)获取信息,但它始终打印{null=[HTTP/1.1 302 Found], Date=[Wed, 26 Oct 2011 21:02:46 GMT], Content-Length=[0], Location=[https://testeserjaum.appspot.com/], Content-Type=[text/html], Server=[Google Frontend]}在第一个System.out.println和null第二个.

有趣的事实是,与其他谷歌应用程序引擎的Web服务,代码工作完美(我试过testegelfur.appspot.com,它工作).

这是代码:

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class URLConnectionReader {
    public static void main(String[] args) throws MalformedURLException, IOException{
           URL url = new URL("http://testeserjaum.appspot.com/");
           HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
           System.out.println(urlConnection.getHeaderFields());
           try {
             InputStream in = new BufferedInputStream(urlConnection.getInputStream());
             BufferedReader buff = new BufferedReader(new InputStreamReader(in));
             System.out.println(buff.readLine());
           }finally{
             urlConnection.disconnect();
           }

    }
}
Run Code Online (Sandbox Code Playgroud)

而且,我不知道它是否有帮助,但这里有一个实际上有效的python等价物.我不能使用它因为我打算在Android应用程序上使用这个软件,而且我已经完成了大量的软件,所以这必须在java中完成.

import urllib2
import base64

req = urllib2.Request('http://testeserjaum.appspot.com/')
req.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')
#base64string = base64.encodestring('%s:%s' %('user', 'pass'))
#print base64string
#req.add_header("Authorization", "Basic %s" %base64string)
lol = urllib2.urlopen(req)
print lol.read()
Run Code Online (Sandbox Code Playgroud)

Den*_*nis 5

HTTP 302是重定向,而不是错误.这就是为什么它叫做Found.

具体来说,它告诉客户端取https://testeserjaum.appspot.com/而不是http://testeserjaum.appspot.com/.

如果您不想处理重定向,只需https://testeserjaum.appspot.com/直接访问即可.