package com.ty.mapapisystem.util;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.ty.mapapisystem.controller.LoginController;

import net.sf.json.JSONObject;

public class DynamicReadConfig {
/**
* 获取配置文件的属性
* @param configPath 配置文件路径
* @param propertyName 要获取该属性的值
* @return 读取的属性值
* @throws Exception
* @throws ConfigurationException 异常向上抛出,有调用该方法的用户进行处理
*/
public static Log log=LogFactory.getLog(DynamicReadConfig.class);
public static String getConfigProperty(String configPath,String propertyName) {
InputStream in = null;
try {
in = new FileInputStream(configPath);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Properties prop = new Properties();
try {
prop.load(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String s = prop.getProperty(propertyName);
return s;
}

public static String startPost(String url,Map<String,Object> map){
StringBuffer sb = new StringBuffer();
for(Map.Entry<String , Object> data:map.entrySet()){
sb.append(data.getKey()+"="+data.getValue()+"&");
}
String rtn = sb.toString().substring(0, sb.toString().length()-1);
return sendPost(url,rtn);
}
public static String sendPost(String url, String param) {

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

URL realUrl = new URL(url);

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream(),"utf-8"));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

log.error("发送 POST 请求出现异常!",e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(Exception ex){

ex.printStackTrace();

}

}

return result;

}

public static String oauth(String account,String passWord) throws Exception {
String url = "";
String id = "";
String secret = "";
String type = "";
String scope = "";
String configPro =DynamicReadConfig.class.getResource("/").getPath() + "/oauthConfig.properties";//"E:\\MapAPISystem(1)\\MapAPISystem\\src\\oauthConfig.properties";
try {
url = DynamicReadConfig.getConfigProperty(configPro, "login.url");
id = DynamicReadConfig.getConfigProperty(configPro, "login.id");
secret = DynamicReadConfig.getConfigProperty(configPro, "login.secret");
type = DynamicReadConfig.getConfigProperty(configPro, "login.type");
scope = DynamicReadConfig.getConfigProperty(configPro, "login.scope");
} catch (Exception e) {
e.printStackTrace();
}
Map<String, Object> map = new HashMap<String, Object>();
map.put(id.split(";")[0], id.split(";")[1]);
map.put(secret.split(";")[0], secret.split(";")[1]);
map.put(type.split(";")[0], type.split(";")[1]);
map.put("username", account);
map.put("password", passWord);
map.put(scope.split(";")[0], scope.split(";")[1]);
String str = DynamicReadConfig.startPost(url, map);
if(str == ""){
return "";
}
String ToKen = "";
JSONObject json = JSONObject.fromObject(str);

ToKen=json.getString("access_token");//String.valueOf(map1.get("access_token"));
// }
return ToKen;
}

//
// public static void main(String[] args) throws Exception {
// String str = DynamicReadConfig.oauth("gh", "123");
// System.out.println(str);
// }
}

java后端发送请求的更多相关文章

  1. java后端发送请求并获取响应

    URL wsUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection(); conn. ...

  2. java后台发送请求并获取返回值(续)

    在java后端发送请求给另一个平台,从而给前端实现 "透传"的过程中,出现:数据请求到了并传到了前端,但是控制台打印时中文显示Unicode码而前端界面中中文显示不出来!!!开始怀 ...

  3. 向.net后端发送请求获取数据,在前端动态填充表格

    实现效果 实现步骤 通过Ajax请求的方式 1.在前端定义Table 2.通过Ajax向.net后端发送数据请求 3.在.net后端定义方法供前端调用,并返回所需的数据 4.通过构造字符串的方式,将后 ...

  4. java后台发送请求并获取返回值

    项目中需要前端发送请求给后端,而后端需要从另一个平台中取数据然后再透传给前端,通过下述代码将其实现.在此记录一下. package com.autotest.utils; import java.io ...

  5. 通过Fiddler监控Java应用发送请求及相应数据

    Fiddler可以很好的监控浏览器发送的各种请求及响应数据,对于JAVA程序默认情况下是无法监控的,但实际需求中需要监控JAVA程序发送HTTP请求及返回数据是否正确. Fiddler默认配置的监听端 ...

  6. IE浏览器因缓存问题未能成功向后端发送请求的几个解决办法

    这段时间前后端联调,解决IE.谷歌等浏览器兼容问题,真是让人有点焦头烂额,各种奇葩问题层出不穷,旧问题刚去,新麻烦又来,其中尤其以IE浏览器缓存的问题最多.有若干次都是因为这个缓存,使得前端的请求没有 ...

  7. Java后端发送email实现

    依赖的jar包 <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail& ...

  8. java模拟post请求发送json

    java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main ...

  9. java httpclient发送json 请求 ,go服务端接收

    /***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOEx ...

随机推荐

  1. Linux内存管理5---物理内存管理

    1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理. 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础.虚拟地址空间的管理.物理地址空间的管理. 本 ...

  2. startup_MK64F12.s文件解析

    1.前言 本文主要对freescale芯片 MK64F12的启动汇编文件进行注释解析. 2.文件注释 /* ---------------------------------------------- ...

  3. Linux 进程中 Stop, Park, Freeze【转】

    转自:https://blog.csdn.net/yiyeguzhou100/article/details/53134743 http://kernel.meizu.com/linux-proces ...

  4. 移动端rem单位适配使用

    1.适配方法 //缩放比例!function(e,t){function i(){o=1,e.devicePixelRatioValue=o,s=1/o;var t=a.createElement(& ...

  5. C# 发送email邮件!

    利用C#邮件发送邮箱使用到两个类SmtpClient和MailMessage.可以把SmtpClient看做发送邮件信息的客户端,而把MailMessage看做需要发送的消息. 下面是我写的发送邮件的 ...

  6. centos6.7环境下kvm虚拟机之virt-install和virsh及virt-manager工具的使用

    virt-install工具的使用: virt-install是一个命令行工具,它能够为KVM.Xen或其它支持libvrit API的hypervisor创建虚拟机并完成GuestOS安装:此外,它 ...

  7. MySQL 命令行工具不能向表中插入中文的解决方法

    1.报错图示 解释:sname这个字段 解析出错. 2.解决方法 打开MySQL的安装目录,找到my.ini文件,把57和81行的utf8改成gbk后 保存,最后,重启MySQL的服务 即可. 3.测 ...

  8. java 数据的存储

    1. 寄存器. 这是最快的存储区,因为它位于不同于其他存储区的地方 -- 处理器的内部.但是寄存器的数量极其有限,所以寄存器根据需求进行分配.你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象. ...

  9. fatal error: google/protobuf/arena.h:没有那个文件或目录

    安装caffe时make all会出现这个错误,按照https://github.com/BVLC/caffe/issues/4988说法,可能时libprotobuf-dev过时了,需要从源码重新变 ...

  10. vue组件库(五):icon管理

    图标管理 前言 一.常用图标库网站 1.http://icomoon.io 阿里巴巴矢量图 身边的 2.http://fontawesome.dashgame.com iconmoon 3.http: ...