idea 打包到Jmeter中使用
1.idea 普通打包
经纬度获取地址
package pers;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class PostDemo {
/**
* 调用对方接口方法
* @param path 对方或第三方提供的路径
* @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析
*/
public static String interfaceUtil(String path,String data) {
String str1 = "";
try {
URL url = new URL(path);
//打开和url之间的连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
PrintWriter out = null;
/**设置URLConnection的参数和普通的请求属性****start***/
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
/**设置URLConnection的参数和普通的请求属性****end***/
//设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个
//最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
//post与get的 不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");//GET和POST必须全大写
/**GET方法请求*****start*/
/**
* 如果只是发送GET方式请求,使用connet方法建立和远程资源之间的实际连接即可;
* 如果发送POST方式的请求,需要获取URLConnection实例对应的输出流来发送请求参数。
* */
conn.connect();
/**GET方法请求*****end*/
/***POST方法请求****start*/
out = new PrintWriter(conn.getOutputStream());//获取URLConnection对象对应的输出流
out.print(data);//发送请求参数即数据
out.flush();//缓冲数据
/***POST方法请求****end*/
//获取URLConnection对象对应的输入流
InputStream is = conn.getInputStream();
//构造一个字符流缓存
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = "";
while ((str = br.readLine()) != null) {
str=new String(str.getBytes(),"UTF-8");//解决中文乱码问题
if(str!=null){
str1=str1.concat(str);
}
}
//关闭流
is.close();
//断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
//固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}finally {
return str1;
}
}
public static void main(String[] args) {
// interfaceUtil("http://api.map.baidu.com/geocoder/v2/?ak=sNt22yxtnLihNl78HTasb7vzcbvEYZK0&location=31.298247284063569,120.66298796130684&output=json&pois=0&mcode=27:09:CB:86:B5:F9:30:AF:20:E0:FA:E0:4B:3C:27:93:CC:B3:4A:FD;com.china.bida.cliu.wallpaperstore", "");//get请求
String test = interfaceUtil("http://api.map.baidu.com/geocoder/v2/?ak=sNt22yxtnLihNl78HTasb7vzcbvEYZK0&output=json&pois=0&mcode=27:09:CB:86:B5:F9:30:AF:20:E0:FA:E0:4B:3C:27:93:CC:B3:4A:FD;com.china.bida.cliu.wallpaperstore", "location=31.298247284063569,120.66298796130684");//post请求
System.out.println(test);
}
}
运行结果:
{"status":0,"result":{"location":{"lng":120.66298796130677,"lat":31.298247160114639},"formatted_address":"江苏省苏州市吴中区东振路85号-16幢","business":"娄葑,东环路,葑门","addressComponent":{"country":"中国","country_code":0,"country_code_iso":"CHN","country_code_iso2":"CN","province":"江苏省","city":"苏州市","city_level":2,"district":"吴中区","town":"","town_code":"","adcode":"320506","street":"东振路","street_number":"85号-16幢","direction":"附近","distance":"1"},"pois":[],"roads":[],"poiRegions":[{"direction_desc":"内","name":"东振花园","tag":"房地产;住宅区","uid":"fbf383d636d6fe1a4c6d463e","distance":"0"}],"sematic_description":"东振花园内,东振小区-16幢内0米","cityCode":224}}
2.idea Maven打包
导入到Jmeter并使用
成功~~
问题:1.
2.找不到主类的解决办法
在pom.xl中配置主类
<build>
<finalName>lh-test</finalName><!-- 导出jar的名字 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>pers.PostDemo</mainClass>
<!-- 主类的位置,例如上图文件,主类配置应为: -->
<!-- <mainClass>top.nihilwater.App</mainClass> -->
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>