Android Java:在Webview上提交表单(帖子)时出错

时间:2019-06-12 14:37:22

标签: java android webview submit csrf

我想在网页视图中加载此页面https://pkfieur.gares.io/pk2geo/,并在“ Ligne”和“ PK”中加载过去的数据,然后单击“ Rechercher”。

过去的数据没问题,但是提交是问题。

此处是html:

<form id="form-id" method="post">
  <div id="the_post">...</div>
  <input type="submit" value="Rechercher">
</form>

和代码:

web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setDomStorageEnabled(true);
web.loadUrl("https://pkfieur.gares.io/pk2geo/");

go.setOnClickListener(new View.OnClickListener()     {
@Override
public void onClick(View v) {
   web.loadUrl("javascript: document.getElementById('id_ligne').value ='" +  ligne.getText() + "';" 
+ "document.getElementById('id_pk').value ='" + pk.getText() + "';" 
+ "document.getElementById('form-id').submit();");
 }

});

准备好我的编辑文本后,我单击我的应用中的GO按钮,然后Webview告诉我:

image

有人可以帮我吗,我知道这可能是cookie或调试问题,但我尝试了很多却没有找到解决方案。

编辑:在进行快速研究时,我们有一个纬度和经度:我只想获取这些数据,为此我使用Webiew,(不是自定义标签,因为它将打开一个新标签..),然后将WebView Visibility设置为false!

如果您有更好的解决方案,例如http或其他,我不知道..:/

Ty!

1 个答案:

答案 0 :(得分:0)

关于从TS进行编辑,TS应该为此使用一个API,然后再使用Retrofit或其他名称来调用该API。

https://square.github.io/retrofit/

Edit2:我从网站中提取了呼叫。在Retrofit实例或API调用适配器中使用此端点,以调用API。在下面查找请求方法和API端点。

>>> import re
>>> text = 'ABSTRACT something HDFC, HDFC-141 and then some'
>>> pattern = r'\b[A-Z]{2,6}-*\d*\b'
>>> re.findall(pattern,text)
['HDFC', 'HDFC-141']

其中XXXX是查询字符串(通常在网站上的字段中键入),您应在调用API时更改它们。