作者khastw (khas)
看板AndroidDev
标题[问题] 增加某网址(url)的资料後送出(post)?
时间Thu Nov 26 09:16:59 2015
就是增删修某个别人的网页(.jsp.php.asp)的资料再送出
请问是可行的吗?
某他人网页 --> 某他人网页 -->执行某他人网页POST-->手机显示POST後的网页
+手机app的资料
因为没办法单纯用url改name=value,是想改某网页比如option selected的项目
因为我翻了几天的资料,有找到几个方案但是都还没成功
想请问这几个方向哪个是正确的?
1.httpUrlConnect post
步骤是读取raw html之後,加上javascript之类的改值语法
遇到问题:步骤有点复杂,所以还没成功,而且读取raw html
之後真的能执行比如asp的post?
2.Jsoup
import jar後用Jsoup找到值(比如id)然後改值(value)
遇到问题:好像只能改html和php,而且和1一样不确定能执行post,
也还没找到能改option的方式
总觉得应该没有这麽复杂...只是想在某网页添加手机上的资料後再照样送出,
真的有这麽复杂吗
....Orz.......
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.181.235
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1448500621.A.275.html
1F:→ ssccg: post当然是可以post,你有需要的资料直接post就好 11/26 09:25
2F:→ ssccg: 不管是jsp、php、asp,对client都只是单纯的http post 11/26 09:26
3F:→ ssccg: 问题在post需要的资料,可能不止form上面的,例如cookie 11/26 09:27
4F:→ ssccg: javascript执行後多出的内容...etc 11/26 09:30
感谢ss大!!
所以我POST资料缺少,会不符原本网页POST的预期,就执行不出来
那 原网页+我的资料 再用原网页POST(理论上资料就完整了) 目前有这样的方法吗?
不过这样等於改了原网页...好像不可能?
可是要补资料(主要是补 option seleted的选项)再送出...没有其他方法了吗@@"
※ 编辑: khastw (223.140.52.126), 11/26/2015 10:42:58
5F:→ ssccg: 要单纯一点就用webview或其他browser-like的library,在上 11/26 10:48
6F:→ ssccg: 面执行javascript改值就可以 11/26 10:48
我是用WebView,可是webview所谓执行javascript好像是指执行原网页已有的javascript
有办法是在原网页执行我自己写的javascript吗?
※ 编辑: khastw (223.140.52.126), 11/26/2015 10:53:57
7F:→ ssccg: loadUrl/evaluteJavascript就是在webview现在开启的网页环 11/26 11:07
8F:→ ssccg: 境中执行任意javascript 11/26 11:07
final WebView myWebView = (WebView) findViewById(R.id.wv1);
WebSettings settings = myWebView.getSettings();
settings.setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/js_java_interaction.html");
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
myWebView.loadUrl("javascript:
{document.getElementsByName('username')[0].value ='BBBBB';};");
}
});
那行loadUrl的javascript确实能执行在webview显示"BBBBB"
可是就把之前loadUrl html的部分全部洗掉了(就是变成都是空白,只剩下BBBBB)
但是照理说应该是只有改掉username的值
其他应该照样显示才对....吧?
stackoverflow关於webview用javascript改value都是差不多的写法...
可是却没人有同样的问题??是我搜寻错关键字吗?
======================================================================
有解决了!!!我把loadUrl设定成
myWebView.loadUrl(
"javascript: {var aa = document.getElementsByName('username')[0];" +
"aa.value = 5" +
"};");
就可以了!!!!!!!
※ 编辑: khastw (114.136.12.224), 11/26/2015 14:34:47
※ 编辑: khastw (114.136.12.224), 11/26/2015 15:00:06
※ 编辑: khastw (114.136.12.224), 11/26/2015 15:13:43
※ 编辑: khastw (114.136.12.224), 11/26/2015 15:15:42