2014-05-23 61 views
1

履帶我想找到正確的方法來設置我的履帶的Accept-Language頭的Accept-Language頭?我看了其他相關答案像Getting imdb movie titles in a specific languageHow to set Accept-Language header on request from applet 但他們沒有爲我工作(我得到這個錯誤:「方法是未定義的連接類型」 下面是部分代碼:設置在Java

String baseUrl = "http://www.imdb.com/search/title?at=0&count=250"; 

org.jsoup.Connection con = Jsoup.connect(baseUrl).userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21"); 

請幫我,我是真正的新的Java。

感謝

+0

仍在研究imDB的東西,呃? :) –

+0

:)))))不,我在3個月前完成了這個項目,我今天只是注意到了它的意外:) – mOna

回答

1

在JSoup,您使用header方法來設置請求頭。所以你的代碼的最後一行將成爲這個。爲了便於閱讀,我添加了換行符。

org.jsoup.Connection con = Jsoup 
    .connect(baseUrl) 
    .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") 
    .header("Accept-Language", /* Put your language here */); 

例如,接受英語,你會在地方,最後的評論中寫"en"

+0

非常感謝,它幫助了我:) – mOna

+0

沒問題@monamona和祝你好運。 –

1

的Accept-Language請求頭域類似於Accept,但限制的組優選作爲該請求的響應自然語言的。Language Tags here

Accept-Language = "Accept-Language" ":" 
        1#(language-range [ ";" "q" "=" qvalue ]) 
    language-range = ((1*8ALPHA *("-" 1*8ALPHA)) | "*") 

每個語言範圍都可以給出一個相關的質量值,表示用戶對該範圍指定的語言的偏好的估計值。質量值默認爲「q = 1」。例如,

Accept-Language: da, en-gb;q=0.8, en;q=0.7 

意味着:「我喜歡丹麥語,但會接受英式英語和其他類型的英語。」如果語言範圍與標籤完全相同,或者與語言標籤的前綴完全相同,使得前綴後面的第一個標記字符爲「 - 」,則語言範圍與語言標記匹配。特殊範圍「*」(如果出現在接受語言字段中)匹配與接受語言字段中存在的任何其他範圍都不匹配的每個標記。

Note: This use of a prefix matching rule does not imply that 
    language tags are assigned to languages in such a way that it is 
    always true that if a user understands a language with a certain 
    tag, then this user will also understand all languages with tags 
    for which this tag is a prefix. The prefix rule simply allows the 
    use of prefix tags if this is the case. 

的由Accept-Language字段分配給語言標記語言品質因數就是在語言的標籤相匹配的領域最長的語言 - 範圍的質量值。如果沒有語言 - 範圍在該領域的標籤匹配時,分配給語言品質因數是0。如果沒有Accept-Language頭存在於該請求,服務器

應該假設所有語言都可以接受。如果存在Accept-Language標頭,則所有分配了品質因數大於0的語言均可接受。

這可能是違背用戶的隱私期望與每個請求的用戶的完整的語言首選項發送的Accept-Language頭。

由於可懂度高度依賴於個人用戶,我們建議客戶端應用程序使語言偏好的選擇提供給用戶。如果選擇不可用,則不應在請求中提供Accept-Language標頭字段。

Note: When making the choice of linguistic preference available to the user, we remind implementors of the fact that users are not familiar with the details of language matching as described above, and should provide appropriate guidance. As an example, users might assume that on selecting "en-gb", they will be served any kind of English document if British English is not available. A user agent might suggest in such a case to add "en" to get the best matching behavior.

例子:

connection.setRequestProperty("Accept-Language","<!-- Depends on Language you want -->"); 

希望幫助!

來源: