私はインターネットの助けを借りて問題を取り組んできましたが、私はわずかしか成功しませんでした。Android Volleyを使ってウェブサイトの検索バーで検索を実行する
問題:私は、VolleyライブラリでAndroidを使用して、2つのWebサイトから検索を実行しようとしています。問題のウェブサイトには、公開APIや検索の実行方法がわからないものはありません。私は、F12で開いているビューで、FirefoxでHTTPリクエストを検査しようとしました。
Website 1 HTTPSプロトコルを使用します。私はここからVnr番号を使って検索する必要があります。結果のページから私は薬の名前を解析します。
Website 2 HTTPプロトコルを使用します。ここから私は見つけられた薬の名前を使って検索し、(フィンランド語で)薬物の説明を得るでしょう。ウェブサイトの2のために
私は正常に結果ページのHTMLファイルを返す次のコードを、試してみました:
RequestQueue queue = Volley.newRequestQueue(this);
String url = "http://www.laakeinfo.fi/Medicine.aspx?m=758&d=2111337&i=ORION+PHARMA_RESILAR_RESILAR+oraaliliuos+3+mg/ml";
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("HTTPTEST", "Response len: " + response.length());
writeToFile(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("HTTPTEST", "Error: " + error.getMessage());
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("i", "Resilar");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/x-www-form-urlencoded");
return params;
}
};
queue.add(request);
今これはまっすぐに私はそれをしたい場所にURLのポイントので、動作します。 URLを"http://www.laakeinfo.fi/Search.aspx"
に変更し、getParams()でparams.put("Search1:txtSearch", "Resilar");
(検索バーの内容)を使用すると、検索ページ自体が返されます。
私の質問は、私が可能にしようとしているものですか?私は知っているウェブのものであまりよくはないが、それはページが検索ロジックを非表示にし、すべてを検索を実行するのを困難にするようだ。それが本当に可能なら、私はどうすればそれについて行くことができますか?この試みではどんなヒントもありがたいです。
アドバイスと励ましに感謝します。私は実際にあなたが(ネットワークインスペクタを使用して発見された)あなたが言ったすべてを含めることによってそれを働かせ、Content-Typeを落としました。どういうわけかそれはすべてを台無しにしました。また、フォームなので、GETではなくPOSTを使用しなければなりません:) – Mootpoint