java调用webAPI(C#)的实例
来源:互联网 发布:linux 安装apache指令 编辑:程序博客网 时间:2024/06/01 10:15
java调用webAPI(C#)的实例
1、需要的包:httpcomponents-client-4.3.1-bin(下图)
2、代码调用
package MainPackage;
import Java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public class MainClass {
public static void main(String[] args) throws Exception{
//WebServicesUsed();
NotAuthTestPost();
String xmlget =get("http://localhost:1445/api/UserAccount");////自己本地的(调用接口方法)URL地址
System.out.print(xmlget);
}
//授权验证
private static void NotAuthTestPost() throws IOException {
Map<String, String> params = new HashMap<String, String>();
params.put("client_id", "123456"); //ID
params.put("client_secret", "abcdef"); //密码
params.put("grant_type", "client_credentials");//授权类型
String xml =post_method( params);
System.out.print(xml);
}
private static String post_method(Map<String, String> params )
{
DefaultHttpClient httpclient = new DefaultHttpClient();
String body = null;
HttpPost post = postForm(params);
body = invoke(httpclient, post);
httpclient.getConnectionManager().shutdown();
return body;
}
private static HttpPost postForm(Map<String, String> params){
HttpPost httpost = new HttpPost("http://localhost:11625/OAuth/Token"); //自己本地的(授权)URL地址
List<NameValuePair> nvps = new ArrayList <NameValuePair>();
Set<String> keySet = params.keySet();
for(String key : keySet) {
nvps.add(new BasicNameValuePair(key, params.get(key)));
}
try {
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return httpost;
}
private static String invoke(DefaultHttpClient httpclient,HttpUriRequest httpost) {
HttpResponse response = sendRequest(httpclient, httpost);
String body = paseResponse(response);
return body;
}
private static HttpResponse sendRequest(DefaultHttpClient httpclient, HttpUriRequest httpost) {
HttpResponse response = null;
try {
response = httpclient.execute(httpost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return response;
}
private static String paseResponse(HttpResponse response) {
HttpEntity entity = response.getEntity();
String charset = EntityUtils.getContentCharSet(entity);
String body = null;
try {
body = EntityUtils.toString(entity);
} catch (ParseException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return body;
}
//获取返回值验证
public static String get(String url) {
DefaultHttpClient httpclient = new DefaultHttpClient();
String body = null;
HttpGet get = new HttpGet(url);
//Authorization:http验证的头,第二个参数:token类型+空格+连接令牌(我们用这个"access_token")
get.setHeader("Authorization", "Bearer " + "Rp_H4RaozPWO2JMZv4Y1r7McVlWPSZ30thmCvD_eLPHOoIsRfxjgDy_OCwy5sgN7R7fc1XXde3qviFC8gBC2NCPDvgNsXTY9BRdVOs0nJIUbcpCMEVwSc2p7I0uAbzmBph0z2oGYKB2EVwqHttXlZ7l-ah_Z4zu7QxuJFCa-UtyMSZNLiLlSsatD6C4oxBxpcfUKpDKJZcvHZOeoEAADK0nhhqj-Qf71qArYr-Y-Z_7-bsz4");
body = invoke(httpclient, get);
httpclient.getConnectionManager().shutdown();
return body;
}
}
- 上一篇java控制台调用webserivce(C#写的)例子
- 下一篇ecplise安装离线的svn步骤
- java调用webAPI(C#)的实例
- java调用webAPI(C#)的实例
- java 调用 C# webapi
- 调用webapi的方法
- jni C调用java的实例
- 调用webapi
- webApi调用
- Java调用C#WEBSERVICE需要注意的细节及实例
- java c/cpp互相调用实例----------c/cpp调用java
- MVC中调用WEBAPI的方法
- vs2015 webapi模板中 身份验证的调用
- 关于c# 中调用webapi 的问题
- C#webApi
- Java与C互相调用实例详解
- Java与C互相调用实例详解
- java c/cpp互相调用实例
- Java jni调用c函数实例
- rabbitmq的java调用实例
- Java GC系列(2):Java垃圾回收是如何工作的?
- Java GC系列(3):垃圾回收器种类
- Java GC系列(4):垃圾回收监视和分析
- HPUOJ--2017寒假作业-专题0/Q-Radar Installation
- linux centos7 下安装配置redis 自动后台启动
- java调用webAPI(C#)的实例
- cubemap generator
- 简单的java webservice 接口 C#调用java webservice(crud)
- XUtils不完全使用指南170209
- The Unreasonable Effectiveness of Recurrent Neural Networks
- QTSServerInterface
- php服务端与android客户端socket通信
- C#调用Java方法(详细实例)
- MAMP下 添加插件问题例如 pcntl & php升级问题