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 内核分析工具 Dtrace、SystemTap、火焰图、crash等

    << System语言详解 >> 关于 SystemTap 的书. 我们在分析各种系统异常和故障的时候,通常会用到 pstack(jstack) /pldd/ lsof/ tc ...

  2. VMware如何给虚拟机添加新硬盘

    在使用虚拟机时,若硬盘空间不足.或需要用到双硬盘或多硬盘环境时,我们可以给虚拟机新增虚拟硬盘

  3. saltstack自动化运维系列11基于etcd的saltstack的自动化扩容

    saltstack自动化运维系列11基于etcd的saltstack的自动化扩容 自动化运维-基于etcd加saltstack的自动化扩容# tar -xf etcd-v2.2.1-linux-amd ...

  4. quartz在application中的使用

    项目结构图: TestMain.java package com; import org.quartz.Scheduler; import org.quartz.impl.StdSchedulerFa ...

  5. 部署vCenter Server Appliance 6.7

    =============================================== 2019/4/14_第1次修改                       ccb_warlock == ...

  6. AndroidStudio、gradle、buildToolsVersion关系

    使用AndroidStudio 开发也已经2年了,每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio.gradle.b ...

  7. java 文件读取的一些方法

    web项目读取日志文件 //得到路径 String appPath = filterConfig.getServletContext().getRealPath("/"); // ...

  8. Oracle分区表删除分区数据时导致索引失效解决

    https://blog.csdn.net/e_wsq/article/details/80896258

  9. 配置apache和php mysql的一些问题

    关于"Windows不能在本地计算机启动Apache2.......并参考特定服务错误代码1"问题解决 apache的httpd.conf文件配置“LoadModule php5_ ...

  10. BZOJ4990 [Usaco2017 Feb]Why Did the Cow Cross the Road II 动态规划 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4990 题意概括 有上下两行长度为 n 的数字序列 A 和序列 B,都是 1 到 n 的排列,若 a ...