作者:8023pxeb_256 | 来源:互联网 | 2022-12-28 16:16
java客户端与服务端访问其他地址你的意思就是你服务器的网页抓不到天气预报是吧jsp请求转发是不是有两中方式一种是用户发送一条请求到你的服务器然后你的服务器收到请求发现需要额外的数
java客户端与服务端访问其他地址
你的意思就是你服务器的网页抓不到天气预报是吧 jsp请求转发是不是有两中方式 一种是用户发送一条请求 到你的服务器 然后你的服务器收到请求 发现需要额外的数据 于是又发送一个请求到别的网络 这要相当于是两次请求 另一种是用户发过来请求 服务器发现需要别的数据 然后直接把用户的这个请求从定向到另外个网络 我估计你是需要第二种 直接把用户的请求重定向到天气预报的那个服务 让天气预报服务觉得这个请求不是你发的 而是用户发的 RequestDispatcher.forward(),.response.sendRedirect() 好像第二个方法是 你可以测试测试看看用这两个方法去重定向请求天气预报的地址 看看能搞到数据么
实在不行就换个地方抓取天气预报 webService 会不会 很简单
登这个网址 点画红圈的地方 就有获取天气预报的服务
java socket编程 怎么访问内网的服务器
我的方向有点和你不一样,但是关于socket的一般是差不多的,建议你找找socket流的知识.Socket内含输入,输出流,只需获取Socket的流对象,就可以对流进行读写操作了。
java 中的一个项目如何做到访问另一个项目的一个方法 或者 页面
要从一个项目访问另一个项目的方法或者页面有几种方式:1、让另一个项目打包成一个jar包,然后将jar包作为当前项目的一个依赖包,这样就可以在当前项目里直接调用另外一个项目的方法了。2、在另外一个项目正在运行的情况下,通过接口地址从当前项目向另外一个项目发送请求,以实现调用另外一个项目的方法。
java相关:客户端怎么通过服务端去请求另一个站点
编写模拟请求,请求方式有两种
一种是GET请求(这种方式类似打开一个网页)附Java方法,urlStr为要请求的地址
public static String getRequest(String urlStr){ String res = ""; HttpURLConnection conn = null; try { URL url = new URL(urlStr); conn = (HttpURLConnection)url.openConnection(); conn.setConnectTimeout(5000); //conn.setReadTimeout(30000); conn.setRequestMethod("GET"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8"); //OutputStream out = new DataOutputStream(conn.getOutputStream()); StringBuffer strBuf = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); String line = null; while ((line = reader.readLine()) != null) { strBuf.append(line).append("\n"); } res = strBuf.toString(); reader.close(); reader = null; }catch(Exception e){ System.out.println("GET链接问题,查看原因!"+e.getMessage()); throw new RuntimeException(e.getMessage()); } finally { if (conn != null) { conn.disconnect(); conn = null; } } return res; }
另一种是POST请求(适用于带参数请求)很多Ajax请求属于这一类。附Java代码
urlStr为请求的地址,Object textMap 为请求的数据,支持Map数据类型。
public static String postRequest(String urlStr,Object textMap){ String res = ""; HttpURLConnection conn = null; try { URL url = new URL(urlStr); conn = (HttpURLConnection)url.openConnection(); conn.setConnectTimeout(5000); //conn.setReadTimeout(30000); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Content-Type","application/json;charset=utf-8"); OutputStream out = new DataOutputStream(conn.getOutputStream()); String paramStr = "{}"; if(textMap!=null){ paramStr = JsonUtil.jsonSerialization(textMap); } out.write(paramStr.getBytes("utf-8")); out.flush(); out.close(); StringBuffer strBuf = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8")); String line = null; while ((line = reader.readLine()) != null) { strBuf.append(line).append("\n"); } res = strBuf.toString(); reader.close(); reader = null; }catch(Exception e){ System.out.println("POST链接问题,查看原因!"+e.getMessage()); throw new RuntimeException(e.getMessage()); } finally { if (conn != null) { conn.disconnect(); conn = null; } } return res; }
在实际请求中,需要考虑你要请求的站点支持的请求方式,查看请求还需要什么样的格式可以使用FireBug或者Google 查看,后面会有POST或者GTE。
例如:下图是使用google查看的,其他的浏览器也大同小异。
希望对你有帮助。