Get和Post方式请求一个地址,返回请求数据

package cn.gis;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

/**
 * 路径分析
 * @author 刘仁奎
 */
public class GISData {

	/**
	 * Get请求方式
	 *
	 * @param urlAddress 请求地址
	 * @param encodedType 编码方式,UTF-8,GBK...
	 */
	public static String getData(String urlAddress, String encodedType) {

		try {
			URL url = new URL(urlAddress);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 打开和URL之间的联接

			// 获取返回数据,使用 utf-8 将流数据进行转码,否则会产生乱码
			BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), encodedType));
			String line = null;
			StringBuffer sb = new StringBuffer();
			while ((line = in.readLine()) != null) {
				sb.append(line);
			}
			in.close(); // 关闭流
			return sb.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}

	/**
	 * POST 请求方式
	 *
	 * @param urlAddress 请求地址
	 * @param encodedType 编码方式,UTF-8,GBK...
	 */
	public static String postData(String urlAddress, String encodedType) {
		try {
			URL url = new URL(urlAddress);
			URLConnection conn = url.openConnection(); // 打开联接
			// 使用POST请求,是否向connection输出/输入,因为这个是post请求,参数要放在http正文内,因此需要设为true
			conn.setDoOutput(true);
			conn.setDoInput(true);
			conn.setUseCaches(false); // Post请求不用设置缓存

			// // 发送域信息
			// OutputStreamWriter out = new
			// OutputStreamWriter(conn.getOutputStream(), "utf-8");
			// out.flush();
			// out.close(); // 关闭流

			// 获取返回数据
			BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
			String line = null;
			StringBuffer sb = new StringBuffer();
			while ((line = in.readLine()) != null) {
				sb.append(line);
			}
			in.close(); // 关闭流
			return sb.toString();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return "";
	}

	public static void main(String[] args) {
		String urlAddress = "http://gis.bjxch.gov.cn:5002/NavigationService.do?request=navigating&sx=498802.9959&sy=307318.7775&ex=500844.8565&ey=304921.25269999&flag=0&type=0&coordtype=0";  // 返回的数据,如xml或json等数据
		System.out.println("————————GET————————");
		System.out.println(getData(urlAddress, "utf-8")); // GET 方式
		System.out.println("————————POST————————");
		System.out.println(postData(urlAddress, "utf-8")); // POST 方式
	}

}
时间: 2024-12-27 22:34:10

Get和Post方式请求一个地址,返回请求数据的相关文章

防抖与节流 & 若每个请求必须发送,如何平滑地获取最后一个接口返回的数据

博客地址:https://ainyi.com/79 日常浏览网页中,在进行窗口的 resize.scroll 或者重复点击某按钮发送请求,此时事件处理函数或者接口调用的频率若无限制,则会加重浏览器的负担,界面可能显示有误,服务端也可能出问题,导致用户体验非常糟糕 此时可以采用 debounce(防抖)和 throttle(节流)的方式来减少事件或接口的调用频率,同时又能实现预期效果 防抖:将几次操作合并为一此操作进行.原理是维护一个计时器,规定在 delay 时间后触发函数,但是在 delay

jquery ajax请求成功,返回了数据,但是不进success的问题 【转】

这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为 是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运, 在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了. 这个问题的原因(来自http://www.myexception.cn/ajax/413061.html的拷贝内容): ----

ajax请求、servlet返回json数据

ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response.setheader("cache-control", "no-cache"); string str = "{'msg':'成功','success':'true'}"; out.print(str); out.flush(); out.close(

OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】

php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-dist]添加GeoJSON数据源图层 <!doctype html> <html lang="en"> <head> <link rel='stylesheet' href='ol.css'> <style> #map { heig

在vue中使用axios实现跨域请求并且设置返回的数据的格式是json格式,不是jsonp格式

在vue中使用axios实现跨域请求 需求分析:在项目中需要抓取qq音乐的歌曲列表的数据,由于要请求数据的地址url=https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg.从qq音乐的官网上可以看到该请求的请求头中的referer中的域名是y.qq.com(发送请求页面的域名),而host的域名是c.y.qq.com(被请求页面的域名),由于两者不一样,所以不能通过前端直接发送请求给qq服务器去拿数据.这时候需要服务器做一个代理

在普通class里使用onActivityResult获取从一个activity返回的数据 (待解)

通常当我们需要从当前activity a启动一个activity b,并希望在b finish之前返回一些数据给a,就使用startActivityForResult,onActivityResult,setResult这些函数.但是这些函数是定义在Activity里面的,普通的class里面没有这些函数. 当我希望在一个fragment里面startActivityOnResult另一个activity,并将返回的数据交给fragment所属的activity处理,我在fragment里面定义

Android -- Activity接收另一个Activity返回的数据

当我们在一个A(Activity)跳转到另外一个B(Activity)时,再由B返回A时,A如何接受返回的数据. 我们在B页面加了一个输入框和按钮,当输入数据,点击按钮返回信息到A页面,先来看B页面Activity代码 package com.example.testapp; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu;

spring mvc接收参数方式,json格式返回请求数据

1 使用方法形参使用变量接收提交的数据 2 在方法的形参中使用模型接收数据 3 如果在提交的表单中有多个数据模型,需要创建一个新的Bean,里面的属性是要接收的对象变量. 4 接收提交的日期字符串,转换成Date类型.需要使用@InitBinder来转换 5 批量删除数据,使用数组接收要删除的id,在页面中使用相同name属性 6 批量提交,如何接收数据?需要新建一个Bean,List或者LinkedList/ArrayList来接收. 7 在两个不同的action方法之间执行转发.在retur

Fiddler快速入门(还有一个功能就是不经过网络,直接模拟一个响应返回给客户端)

Fiddler是一个免费.强大.跨平台的HTTP抓包工具.Wireshark也是一个强大的抓包工具,不过Wireshark是一个通用的抓包工具,主要精力放在各种协议上了,针对HTTP的特定功能较少.所以如果你需要研究HTTP包的话,Fiddler一定是最适合的工具. 下载和安装 我们可以到Fidller下载页面下载Fiddler.下载完成之后安装即可.安装之后,我们打开它,可以得到类似的用户界面.在Windows下可能需要管理员权限,允许即可. Fiddler Fiddler通过打开localh