So.私の問題は非常に奇妙です(私にとって)。私はthisサイトにHTTPリクエストを送信するためにVolleyを使用しています。同じコードを使用して私は3種類の応答を得ます。 1つは奇妙な記号でいっぱいです(WRÄÕΨäxúD©zíÿ&ôD...)、2番目のページは自分のエラーページ、3番目のタイプは薬のページです。バレーリクエストは、デスクトップブラウザのページを訪問した後にのみ有効です。
欲しい、実際の結果ページを取得する唯一の方法は、奇妙なことです。私は薬のページにHTTP GETを送ります。これを行うだけで、タイプ1またはタイプ2のいずれかになりますが、しかし!私が最初にリンクをクリックすると(私はAndroid Studioでログオンしています)、デスクトップのブラウザでページに移動します(通常、いくつかの試行の後にエラーページが表示されることがあります)。 !
私は何度も何度も試してみましたが、実際にはこれがうまくいくようです。結果ビューに戻り、薬をもう一度クリックすることができるので、私は自分のアプリを再起動しません。私は薬をクリックして、いつもエラーページか奇妙な記号のいずれかで終わってしまうかもしれませんが、私のデスクトップ上のページを訪れてから、アプリでそれを再びクリックすると、常に望ましいページが生成されます。何が問題なの?クッキーについて何か?次のように
要求のためのコードは次のとおりです。
public static void requestWithUrl(final HTTPRequestListener listener, final String url) {
Log.d("WUT", "URL: " + url);
final StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("WUT", "Got url response");
try {
String encoding = "UTF-8";
String line;
InputStream stream = new ByteArrayInputStream(response.getBytes(encoding));
BufferedReader reader = new BufferedReader(new InputStreamReader(stream, encoding));
while ((line = reader.readLine()) != null) {
Log.d("WUT", "LINE: " + line);
}
} catch (Exception e) {
listener.onHTTPFailure();
}
listener.onFoundSingle("Title", response, true);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("WUT", "Got url error");
listener.onHTTPFailure();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("Content-Type", "text/html; charset=utf-8");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("Host", "www.laakeinfo.fi");
params.put("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0");
params.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
params.put("Accept-Language", "fi-FI,fi;q=0.8,en-US;q=0.5,en;q=0.3");
params.put("Accept-Encoding", "gzip, deflate");
params.put("Referer", "http://www.laakeinfo.fi/Search.aspx");
return params;
}
};
request.setTag(TAG);
queue.add(request);
}