簡體   English   中英

與google-app-engine通信Java時出現錯誤302

[英]Error 302 when communicating java with google-app-engine

我正在運行一個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

有趣的事實是,與其他google-app-engine網絡服務一起,該代碼可以完美運行(我嘗試使用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();
           }

    }
}

而且,我不知道它是否有幫助,但這是一個等效的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()

HTTP 302是重定向,而不是錯誤。 這就是為什么將其稱為Found的原因。

具體來說,它告訴客戶端獲取https://testeserjaum.appspot.com/而不是http://testeserjaum.appspot.com/

如果您不想處理重定向,只需直接訪問https://testeserjaum.appspot.com/

那不是錯誤。 這是一個臨時重定向,您可以遵循。 有些庫始終為您遵循重定向; 有些從來沒有做過。 別人把它留給你。 如果庫沒有,則可以在用戶代碼中進行。

但是,Java為此提供了方便的setFollowRedirects

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM