java调用接口
A. java如何调用对方http接口 新手虚心求教
importjava.io.BufferedReader;
importjava.io.DataOutputStream;
importjava.io.InputStreamReader;
importjava.net.HttpURLConnection;
importjava.net.URL;
importjava.net.URLEncoder;
publicclassDemoTest1{
publicstaticfinalStringGET_URL="http://112.4.27.9/mall-back/if_user/store_list?storeId=32";
//publicstaticfinalStringPOST_URL="http://112.4.27.9/mall-back/if_user/store_list";
//妙兜测试接口
publicstaticfinalStringPOST_URL="http://121.40.204.191:8180/mdserver/service/installLock";
/**
*接口调用GET
*/
(){
try{
URLurl=newURL(GET_URL);//把字符串转换为URL请求地址
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();//打开连接
connection.connect();//连接会话
//获取输入流
BufferedReaderbr=newBufferedReader(newInputStreamReader(connection.getInputStream(),"UTF-8"));
Stringline;
StringBuildersb=newStringBuilder();
while((line=br.readLine())!=null){//循环读取流
sb.append(line);
}
br.close();//关闭流
connection.disconnect();//断开连接
System.out.println(sb.toString());
}catch(Exceptione){
e.printStackTrace();
System.out.println("失败!");
}
}
/**
*接口调用POST
*/
(){
try{
URLurl=newURL(POST_URL);
//将url以open方法返回的urlConnection连接强转为HttpURLConnection连接(标识一个url所引用的远程对象连接)
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();//此时cnnection只是为一个连接对象,待连接中
//设置连接输出流为true,默认false(post请求是以流的方式隐式的传递参数)
connection.setDoOutput(true);
//设置连接输入流为true
connection.setDoInput(true);
//设置请求方式为post
connection.setRequestMethod("POST");
//post请求缓存设为false
connection.setUseCaches(false);
//设置该HttpURLConnection实例是否自动执行重定向
connection.setInstanceFollowRedirects(true);
//设置请求头里面的各个属性(以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)
//application/x-javascripttext/xml->xml数据application/x-javascript->json对象application/x-www-form-urlencoded->表单数据
//;charset=utf-8必须要,不然妙兜那边会出现乱码【★★★★★】
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");
//建立连接(请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)
connection.connect();
//创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)
DataOutputStreamdataout=newDataOutputStream(connection.getOutputStream());
Stringapp_key="app_key="+URLEncoder.encode("","utf-8");//已修改【改为错误数据,以免信息泄露】
Stringagt_num="&agt_num="+URLEncoder.encode("10111","utf-8");//已修改【改为错误数据,以免信息泄露】
Stringpid="&pid="+URLEncoder.encode("BLZXA150401111","utf-8");//已修改【改为错误数据,以免信息泄露】
Stringdepartid="&departid="+URLEncoder.encode("10007111","utf-8");//已修改【改为错误数据,以免信息泄露】
Stringinstall_lock_name="&install_lock_name="+URLEncoder.encode("南天大门","utf-8");
Stringinstall_address="&install_address="+URLEncoder.encode("北京育新","utf-8");
Stringinstall_gps="&install_gps="+URLEncoder.encode("116.350888,40.011001","utf-8");
Stringinstall_work="&install_work="+URLEncoder.encode("小李","utf-8");
Stringinstall_telete="&install_telete="+URLEncoder.encode("13000000000","utf-8");
Stringintall_comm="&intall_comm="+URLEncoder.encode("一切正常","utf-8");
//格式parm=aaa=111&bbb=222&ccc=333&ddd=444
Stringparm=app_key+agt_num+pid+departid+install_lock_name+install_address+install_gps+install_work+install_telete+intall_comm;
//将参数输出到连接
dataout.writeBytes(parm);
//输出完成后刷新并关闭流
dataout.flush();
dataout.close();//重要且易忽略步骤(关闭流,切记!)
//System.out.println(connection.getResponseCode());
//连接发起请求,处理服务器响应(从连接获取到输入流并包装为bufferedReader)
BufferedReaderbf=newBufferedReader(newInputStreamReader(connection.getInputStream(),"UTF-8"));
Stringline;
StringBuildersb=newStringBuilder();//用来存储响应数据
//循环读取流,若不到结尾处
while((line=bf.readLine())!=null){
//sb.append(bf.readLine());
sb.append(line).append(System.getProperty("line.separator"));
}
bf.close();//重要且易忽略步骤(关闭流,切记!)
connection.disconnect();//销毁连接
System.out.println(sb.toString());
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
//httpURLConectionGET();
httpURLConnectionPOST();
}
}
B. java类调用接口中的方法
你要理解接口的作用。接口提供了一种规范,就像现实中,USB接口是一种接口一样,但是接口一定要有一个具体的实现,比如你的U盘,充电宝等等。相同的接口可以“保证”正常的调用,而不用知道实现这个接口的类具体是个什么东西。当你把USB接口的设备插在U口上时,其实你并不太关心这些设备内部到底有什么不同。
面向对象提出接口的概念,就是为了达到这个目的。如果有三个类,都实现了某一接口,它你的代码调用它们的时候,你不用关心这三个类都有哪些不同,你只关心它们相同的部分,就是接口所“规定”的那些方法,它们肯定要实现的,但具体的实现一定是在各自的类定义里。所以你在看代码的时候,要看接口方法的具体实现,要在实现接口的类里去看,而不是看接口本身。不知道这样说,你清楚了没有。
C. JAVA接口调用
接口是用来继承和实现的 接口里面的方法只能是抽象方法 实现接口的类必须实现其所有方法
你的接口类写错了 应该是
public interface PetInterface {
public abstract void pet();
}
比如说你的Fruit类实现PetInterface接口写法为:
class Fruit implemented PetInterface{
public void pet(){
}
public void hitChild(){
System.out.println("水果:");
}
D. 如何用Java调用别人API接口
java发一个http请求过去,带上参数就可以了啊,跟我们在浏览器上访问资源是一样的 只是它返回的是json格式的数据而已
给你两个方法吧:
public static String do_post(String url, List<NameValuePair> name_value_pair) throws IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpPost httpost = new HttpPost(url);
httpost.setEntity(new UrlEncodedFormEntity(name_value_pair, StandardCharsets.UTF_8));
HttpResponse response = httpclient.execute(httpost);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
public static String do_get(String url) throws ClientProtocolException, IOException {
String body = "{}";
DefaultHttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
body = EntityUtils.toString(entity);
} finally {
httpclient.getConnectionManager().shutdown();
}
return body;
}
E. java http调用接口书写
rest接口的话可以使用
RestTemplate
Stringuri="http://example.com/hotels/1/bookings";
PostMethodpost=newPostMethod(uri);
Stringrequest=//createbookingrequestcontent
post.setRequestEntity(newStringRequestEntity(request));
httpClient.executeMethod(post);
if(HttpStatus.SC_CREATED==post.getStatusCode()){
Headerlocation=post.getRequestHeader("Location");
if(location!=null){
System.out.println("Creatednewbookingat:"+location.getValue());
}
}
api文档参考http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/remoting.html#rest-client-access
F. java写的接口怎么调用
访问形式如下例子:
//接口
publicinterfaceLoggerUtil{
//得到Logger,用于打印日志
Loggerlogger=Logger.getLogger(LoggerUtil.class);
}
@RequestMapping("/delete.do")
publicStringdelete(Studentsstudents){
try{
stuService.delete(students);
}catch(Exceptione){
//接口的调用方式(直接调用)
LoggerUtil.logger.error(e.getMessage());
}
return"redirect:selectAll.do";
}
G. java中接口直接调用方法
在另一个类中的service的类型是接口service,但构造是用serviceImpl的构造构造函数构造的,你查看下另一个类的代码,此外,service也可以是由spring构造注入的,看下spring的配置文件或者注释确认下
H. java怎么使用接口 java如何实现接口操作
接口是Java 实现多继承的一种机制,一个类可以实现一个或多个接口。接口是一系列
方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些
方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。简单的说接口不
是类,但是定义了一组对类的要求,实现接口的某些类要与接口一致。
在Java 中使用关键字interface 来定义接口。例如:
publicinterfaceCompare{
publicintcompare(ObjectotherObj);
}
Compare 接口定义了一种操作compare,该操作应当完成与另一个对象进行比较的功能。
它假定某个实现这一接口的类的对象x 在调用该方法时,例如x . compare(y),如果x 小于y,
返回负数,相等返回0,否则返回正数。
举例
{
privateStringsId;//学号
//Constructor
10
publicStudent(){
this("","","");
}
publicStudent(Stringname,Stringid,StringsId){
super(name,id);
this.sId=sId;
}
publicvoidsayHello(){
super.sayHello();
System.out.println(".");
}
//get&setmethod
publicStringgetSId(){
returnthis.sId;}
publicvoidsetSId(StringsId){
this.sId=sId;}
//implementsCompareinterface
publicintcompare(ObjectotherObj){
Studentother=(Student)otherObj;
returnthis.sId.compareTo(other.sId);
}
}//endofclass