【发布时间】:2016-04-10 09:43:39
【问题描述】:
所以我在互联网的帮助下处理我的问题已经有一段时间了,但收效甚微。
问题:我正在使用带有 Volley 库的 Android 来尝试从两个网站执行搜索。有问题的网站没有开放的 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");(搜索栏的内容),它只会返回搜索页面本身。
现在我的问题是,我正在尝试做的事情可能吗?我对网络东西不太了解,但似乎这些页面隐藏了搜索逻辑和所有内容,这使得执行搜索变得困难。如果确实有可能,我该怎么做呢?在此尝试中将不胜感激任何提示。
【问题讨论】:
标签: android asp.net http https android-volley