怎么通过java访问一个网页,截取字段返回

weixin_43991147 2020-06-22 11:10:52
java定义一个类
访问这个网页:http://pv.sohu.com/cityjson?ie=utf-8
想要单返回ip地址的字段


求大神帮助!!
...全文
1239 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜鸟①个 2020-06-23
  • 打赏
  • 举报
回复
很多工具包,spring下的resttemplate就可以,jsoup也行。。。很多的,技术好自己可以手写
flurriedCat 2020-06-23
  • 打赏
  • 举报
回复
写JS更快点。。 eval执行完后,就能够拿到returnCitySN。。 如果一定要用Java来写。。 3楼写的挺好的。
w401557499 2020-06-23
  • 打赏
  • 举报
回复
用httpClient(没用过的话百度下)请求该接口,将结果转成一个JSONObject(该结果应该手动截取处理下),就可以get出cip属性了,实例代码如下: public static void main(String[] args) throws IOException { CloseableHttpClient aDefault = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://pv.sohu.com/cityjson?ie=utf-8"); CloseableHttpResponse response = aDefault.execute(httpGet); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity, "UTF-8"); //var returnCitySN = {"cip": "221.232.102.239", "cid": "420100", "cname": "湖北省武汉市"}; String substring = result.substring(result.indexOf("{"), result.indexOf("}") + 1); //{"cip": "221.232.102.239", "cid": "420100", "cname": "湖北省武汉市"} try { JSONObject jsonObject = JSONObject.parseObject(substring); String cip = (String) jsonObject.get("cip"); System.out.println(cip);//221.232.102.239 } catch (Exception e) { e.printStackTrace(); } } }
weixin_43991147 2020-06-23
  • 打赏
  • 举报
回复
引用 8 楼 flurriedCat 的回复:
[quote=引用 6 楼 weixin_43991147 的回复:]
[quote=引用 4 楼 flurriedCat 的回复:]
写JS更快点。。 eval执行完后,就能够拿到returnCitySN。。 如果一定要用Java来写。。 3楼写的挺好的。


想嵌套在jsp中,但要怎么能实现该IP地址与一个表单的其他数据一起提交保存到一个javabean中啊,所以想着用java直接写一个方法然后在jsp界面中直接调用获取那个ip地址,再连同表单一起提交[/quote]


<input type="text" id="cip" value="Hello world!" />
<script>
var body = 'var returnCitySN = {"cip": "183.11.68.150", "cid": "440300", "cname": "广东省深圳市"}';
eval(body);
document.getElementById("cip").value = returnCitySN.cip;
</script>

放到html 页面打开看看把。。[/quote]

可以啦!谢谢大佬!
  <form>
<input type="text" id="cip" value="">
<input type="submit" value="提交">
</form>
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">
document.getElementById("cip").value = returnCitySN.cip;
</script>

我这样写就可以直接获取了!
flurriedCat 2020-06-23
  • 打赏
  • 举报
回复
引用 6 楼 weixin_43991147 的回复:
[quote=引用 4 楼 flurriedCat 的回复:] 写JS更快点。。 eval执行完后,就能够拿到returnCitySN。。 如果一定要用Java来写。。 3楼写的挺好的。
想嵌套在jsp中,但要怎么能实现该IP地址与一个表单的其他数据一起提交保存到一个javabean中啊,所以想着用java直接写一个方法然后在jsp界面中直接调用获取那个ip地址,再连同表单一起提交[/quote]

<input type="text" id="cip" value="Hello world!" />
<script>
var body = 'var returnCitySN = {"cip": "183.11.68.150", "cid": "440300", "cname": "广东省深圳市"}';
eval(body);
document.getElementById("cip").value = returnCitySN.cip;
</script>
放到html 页面打开看看把。。
CS_草祭先生 2020-06-23
  • 打赏
  • 举报
回复
这个在JAVA端用http请求就能获取返回值,然后根据你业务需求处理。
weixin_43991147 2020-06-23
  • 打赏
  • 举报
回复
引用 4 楼 flurriedCat 的回复:
写JS更快点。。 eval执行完后,就能够拿到returnCitySN。。 如果一定要用Java来写。。 3楼写的挺好的。


想嵌套在jsp中,但要怎么能实现该IP地址与一个表单的其他数据一起提交保存到一个javabean中啊,所以想着用java直接写一个方法然后在jsp界面中直接调用获取那个ip地址,再连同表单一起提交
weixin_43991147 2020-06-23
  • 打赏
  • 举报
回复
引用 3 楼 w401557499 的回复:
用httpClient(没用过的话百度下)请求该接口,将结果转成一个JSONObject(该结果应该手动截取处理下),就可以get出cip属性了,实例代码如下:
public static void main(String[] args) throws IOException {
CloseableHttpClient aDefault = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://pv.sohu.com/cityjson?ie=utf-8");
CloseableHttpResponse response = aDefault.execute(httpGet);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");
//var returnCitySN = {"cip": "221.232.102.239", "cid": "420100", "cname": "湖北省武汉市"};
String substring = result.substring(result.indexOf("{"), result.indexOf("}") + 1);
//{"cip": "221.232.102.239", "cid": "420100", "cname": "湖北省武汉市"}
try {
JSONObject jsonObject = JSONObject.parseObject(substring);
String cip = (String) jsonObject.get("cip");
System.out.println(cip);//221.232.102.239
} catch (Exception e) {
e.printStackTrace();
}
}
}


谢谢大佬!前面要引入什么包啊

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧