android 调用restful,android调用springmvc写的restful

下载srpingmvc的相关jar

http://www.cnblogs.com/liuhongfeng/p/4919963.html

配置spingmvc和相关接口

http://blog.csdn.net/jianyuerensheng/article/details/51258942

如果报错,检查JDK版本是否和本地的一致

在UserController.jave中添加接口

package com.zjn.controller;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.ModelAttribute;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.servlet.ModelAndView;

import com.zjn.entity.User;

/**

* 用户管理

*

* @author zjn

*/

@Controller

public class UserController {

@RequestMapping("")

public String Create(Model model) {

return "create";

}

@RequestMapping("/save")

public String Save(@ModelAttribute("form") User user, Model model) { // user:视图层传给控制层的表单对象;model:控制层返回给视图层的对象

model.addAttribute("user", user);

return "detail";

}

@RequestMapping(value="/Restfull",method=RequestMethod.POST)

public String Restfull(@ModelAttribute("form") User user, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.setAttribute("name",user.getAge()+ user.getName() + user.getPwd());

return "list";

}

@RequestMapping(value="/RestfullGet/{proId}",method=RequestMethod.GET)

public String RestfullGet(@PathVariable String proId, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.setAttribute("name", proId);

return "list";

}

@RequestMapping(value="/RestfullMGet/{name}/{pwd}",method=RequestMethod.GET)

public String RestfullMGet(@ModelAttribute("form") User user, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.setAttribute("name", user.getName() + "------" + user.getPwd());

return "list";

}

@RequestMapping(value="/RestfullM1Get/{name}/{pwd}",method=RequestMethod.GET)

public ModelAndView RestfullM1Get(@PathVariable String name,

@PathVariable String pwd) {

System.out.println(name + "------" + pwd);

Mapmap1 = new HashMap();

map1.put("name", name + "------" + pwd);

return new ModelAndView( "/list", map1);

}

@RequestMapping(value="/RestfullAGet/{proId}",method=RequestMethod.GET)

public @ResponseBody String RestfullAGet(@PathVariable String proId, HttpServletRequest request,HttpServletResponse response) throws Exception {

request.setAttribute("name", proId);

return "backinfo:" + proId;

}

}

在create.jsp中条码web调用接口的方法

Insert title here

${name}

如果在android中调用接口

增加权限

网络访问应该放在线程中

package com.myapplication;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import java.io.IOException;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

public class MainActivity extends AppCompatActivity {

Runnable RestfulRun = new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

String URL = "http://192.168.9.160:8080/SpringMVC/RestfullAGet/00001";

HttpURLConnection conn = null;

try {

URL target = new URL(URL);

conn = (HttpURLConnection) target.openConnection();

conn.setRequestMethod("GET");

conn.setRequestProperty("Accept", "application/json");

if (200 != conn.getResponseCode()) {

throw new RuntimeException("failed, error code is " + conn.getResponseCode());

}

byte[] temp = new byte[conn.getInputStream().available()];

if (conn.getInputStream().read(temp) != -1) {

Log.i("info", new String(temp));

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

conn.disconnect();

}

}

};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

// Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)

// .setAction("Action", null).show();

new Thread(RestfulRun).start();

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eureka server配置_springcloud项目搭建第三节:eureka集群

在上一节搭建的项目基础上,在创建一个eureka-server-two的子项目和eureka-server项目一样,然后修改各自项目的application.yml文件eureka-server项目的application.yml文件修改2点1.修改eureka的注册地址改成另一个eureka-server-two项目的注册中心地址2…

15.浮点类型

数值范围 float类型又被称为单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。 double类型又被称为双精度类型,尾数可以精确到14位有效数字。 浮点类型默认是double。 public static void main(…

c4d流体插件_(图文+视频)C4D野教程:TFD、XP和RF三大流体插件协作案例

在逛INS的时候,看见国外一位叫做BastardFilms的大神制作了很多流体的效果:尤其是他制作的很多液态烟雾的流体,我特别喜欢,由于我不知道怎么下载INS的视频,所以这里只有发个截图大家看看:作者这里有说明是用…

form表单用js提前执行函数若不成功则不提交_面试必会的重复提交 8 种解决方案!...

重复提交看似是一个小儿科的问题,但却存在好几种变种用法。在面试中回答的好,说不定会有意想不到的收获!现把这 8 种解决方案分享给大家!1.什么是幂等在我们编程中常见幂等select查询天然幂等delete删除也是幂等,删除同一个多次效…

16.char类型

char,占2个字节。 单引号用来表示字符常量。例如a. char类型用来表示在Unicode编码表中的字符。 unicode编码被设计用来处理各种语言的所有文字,它占了2个字节,可允许有65536个字符。 Java语言中还允许使用转义字符‘\,来将其后的…

转向Kotlin——数据类和封闭类

数据类和封闭类是Kotlin中的两种特殊的类,今天一起了解一下。更多精彩内容也可以关注我的微信公众号——Android机动车 数据类 数据类是Kotlin的一个语法糖。Kotlin编译器会自动为数据类生成一些成员函数,以提高开发效率。 数据类的使用 无论是Java服务器…

idea前端可视化_jsp可视化开发工具_netbeans jsp可视化_idea 可视化开发 jsp

数字生态钜惠来袭!秒杀 2核4G 5M带宽 1200元/3年,1核1G首购 99元/年把默认改成 myeclipse jsp editor()原默认的jsp编辑器是 myeclipse visual jspdesigner,顾名思义,此编译器是jsp可视化编辑器,对于初学者有很多的帮助…

开博尔智能android播放器,高端安卓播放器的选择——开博尔Q10Plus 二代 4K高清播放器...

随着OPPO和三星相继宣布退出4K蓝光播放器市场,先锋的新机迟迟无法大量铺货,现在市面上可选择的4K播放器就比较少了,价格也很高了,于是很多人开始将注意力转向了安卓机,其中开博尔是比较有代表性的厂家了,这…

17.类型转换

自动类型转换 容量小的数据类型可以自动转换为容量大的数据类型 byte b 123;//byte b2 300;//报错,超过了byte最大值127//char c -3;//报错,char范围是0~65536,不在范围char c2 a;//a在ascii码里是98int i c2;long d01 123213;float f…

docker rabbitmq_一文看懂Rabbitmq,从安装到实战演练

Rabbitmq的初步使用随着微服务概念发展,大应用逐步拆分为小应用,提高开发效率,专门的人做专门的事情,逐渐的流行起来。在微服务上实现通信的方式大部分是采用rpc方式,也有升级版本的grpc。还有另外一种实现就是使用mq来…

Angular v6 正式发布

Angular 6 正式发布 Angular 6 已经正式发布了!这个主要版本并不关注于底层的框架,更多地关注于工具链,以及使 Angular 在未来更容易快速推进。 作为发布的一部分,我们同步了主要的框架包 (angular/core, angular/common, angula…

bootstrap五星评分_如何用纯代码实现评分星级显示?

showRatingStars/*** showRatingStars 显示评分星级* param {Object} myCanvas 画布对象* param {Number} rating 评分* param {Number} counts star个数* param {Number} size star大小* param {Object} style star样式* Example: style {* borderColor:"#21DEEF",…

18.变量

Java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元。 注意事项…

alertdialog android api 11,android – 设备api级别11的DialogFragments

我设法在兼容包的DialogFragment.java中正确修复了这个问题:改变第74行:boolean mShowsDialog false;注释掉第232行:// mShowsDialog mContainerId 0;然后将两个show方法更改为:public void show(FragmentManager manager, Str…

py 字典添加多个value_# Python 3 # Python 3字典Dictionary(1)

Python3 字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d {key1 : value1, key2 : value2 }键必须是唯…

饶军:Apache Kafka的过去,现在,和未来

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云社区,未经许可,不得转载。大家好,我大概简单的介绍一下,我叫饶军,我是硅谷的初创公司Confluent的联合创始人之一,我们公司…

机器人 树莓派 自闭症_用机器人孩子提高社交能力 让自闭儿童走出自闭

一项由耶鲁大学的研究团队研究发现,通过让患有自闭症谱系障碍(autism spectrum disorders,ASD)的孩童与机器人相处一个月,极大地提高了自闭症儿童的社交能力。耶鲁大学研究中的机器人可以通过眼神接触和模仿其它社交行为,通过讲故事和互动游戏…

19.常量-final

final 常量 final修饰,只能被初始化一次。 public static void main(String[] args){final int a3;a4;//报错/*TestVariable.java:7: 错误: 无法为最终变量a分配值a4;^ 1 个错误*/}常量一般用大写来修饰。 ------------- 更多的Java,Angular,…

Android手机avi转换为mp4手机,如何把avi转换为mp4

AVI是目前比较常见的一种音视频交错格式,这种格式的文件在多种地方是可以看到的,大多在游戏录制、光盘文件中可以见到此类文件。其画质不错,适合在电脑上观看,但是现在我们使用较多的是手机、iPad等设备。如果我们想要在这些设备上…

伪代码书写规范_C++代码书写规范(推荐新手程序员)

代码就是程序员的面子,无论是在工作中在电脑上写程序代码还是在面试时在纸上写演示代码我们都希望写出整洁,优雅的代码。特别在工作中当我们碰到需要维护别人的代码,或者是多人参与一个项目大家一起写代码的时候,如果碰到一些丑陋…