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.pswp.cn/news/538760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538760.shtml
英文地址,請注明出處:http://en.pswp.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的過去,現在,和未來

歡迎大家前往騰訊云社區,獲取更多騰訊海量技術實踐干貨哦~ 本文首發在云社區,未經許可,不得轉載。大家好,我大概簡單的介紹一下,我叫饒軍,我是硅谷的初創公司Con?uent的聯合創始人之一,我們公司…

機器人 樹莓派 自閉癥_用機器人孩子提高社交能力 讓自閉兒童走出自閉

一項由耶魯大學的研究團隊研究發現,通過讓患有自閉癥譜系障礙(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++代碼書寫規范(推薦新手程序員)

代碼就是程序員的面子,無論是在工作中在電腦上寫程序代碼還是在面試時在紙上寫演示代碼我們都希望寫出整潔,優雅的代碼。特別在工作中當我們碰到需要維護別人的代碼,或者是多人參與一個項目大家一起寫代碼的時候,如果碰到一些丑陋…