0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java中Get和Post的使用

jf_96884364 ? 來源:jf_96884364 ? 作者:jf_96884364 ? 2023-01-12 15:38 ? 次閱讀

1 Get請(qǐng)求數(shù)據(jù)

項(xiàng)目地址:https://github.com/Snowstorm0/learn-get-post

1.1 Controller

文件名MyController,內(nèi)容為:

@RestController
@RequestMapping("/homepage")
public class MyController {
    @Autowired
    MyService myService;

    @GetMapping("/learnGet")
    public String learnGet(){
        return myService.learnGet();
    }
}

1.2 Service

文件名MyService,內(nèi)容為:

@Service
@EnableScheduling
public class MyService {
    public String learnGet(){
        Long timeLong = System.currentTimeMillis();
        SimpleDateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //設(shè)置格式
        String timeString = timeFormat.format(timeLong);
        return timeString;
    }
}

1.3 Application

在application.properties配置:

# 設(shè)置端口號(hào)
server.port=8888

1.4 Postman

配置Get,地址為: http://localhost:8888/homepage/returnTime 。

即可獲得當(dāng)前時(shí)間戳。

2 Post接收數(shù)據(jù)

項(xiàng)目地址:https://github.com/Snowstorm0/learn-get-post

2.1 Controller

文件名MyController,內(nèi)容為:

@RestController
@RequestMapping("/homepage")
public class MyController {
    @Autowired
    MyService myService;
    @PostMapping("/postReceive")
    public Map postReceive(@RequestParam("number") int number, @RequestParam("name") String name) {
        return myService.postReceive(number, name);
    }
    @PostMapping("/postReceiveByMap")
    public Map postReceiveByMap(@RequestParam Map map) {
        System.out.println("map:" + map + "\\n");
        return myService.postReceiveByMap(map);
    }
}

2.2 Service

文件名MyService,內(nèi)容為:

@Service
@EnableScheduling
public class MyService {
    public Map postReceive(int number, String name){
        Map res = new HashMap<>();
        res.put("number", number);
        res.put("name", name);
        return res;
    }
    public Map postReceiveByMap(Map map){
        int number = map.get("number") == null ? 0 : Integer.parseInt((String) map.get("number"));
        String name = map.get("name") == null ? "" : (String)map.get("name");
        Map res = new HashMap<>();
        res.put("number", number);
        res.put("name", name);
        System.out.println("map:" + map + "\\n");
        System.out.println("res:" + res + "\\n");
        return res;
    }

2.3 Application

在application.properties配置:

# 設(shè)置端口號(hào)
server.port=8888

2.4 Postman

配置Get,地址為: http://localhost:8888/homepage/returnTime 。

即可獲得輸出。

3 Post發(fā)送數(shù)據(jù)

項(xiàng)目地址:https://github.com/Snowstorm0/learn-post-send

需要注意,RestTemplate在postForObject時(shí),用MultiValueMap,不可使用HashMap。

3.1 Controller

文件名MyController,內(nèi)容為:

@RestController
@RequestMapping("/homepage")
public class MyController {

    @Autowired
    MyService myService;

    @PostMapping("/postSend")
    public Map postSend() {
        return myService.postSend();
    }
}

3.2 Service

文件名MyService,內(nèi)容為:

@Service
@EnableScheduling
public class MyService {
    @Resource
    private RestTemplate restTemplate;
    String URL = "http://localhost:8888/homepage/postReceiveByMap";

    public Map postSend(){
        Map sendData = new HashMap<>();
        sendData.put("number", 3);
        sendData.put("name", "張三");
        ResponseEntity responseData = restTemplate.postForEntity(URL, sendData, ResponseResult.class);
        Map returnData = new HashMap<>();
        returnData.put("StatusCode:", responseData.getStatusCode());
        returnData.put("Body:", responseData.getBody());
        return returnData;
    }
}

3.3 ResponseResult

public class ResponseResult {

    private int number;
    private String name;

    public ResponseResult(){
    }

    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "ResponseResult [number=" + number + ",name=" + name + "]";
    }
}

3.4 Config

@Configuration
public class Config {
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder){
        return builder.build();
    }
}

3.5 Application

在application.properties配置:

# 設(shè)置端口號(hào)
server.port=8889

3.6 Postman

配置Post,地址為: http://localhost:8889/homepage/postSend

即可獲得輸出。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104489
  • Controller
    +關(guān)注

    關(guān)注

    0

    文章

    397

    瀏覽量

    57066
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    465

    瀏覽量

    16359
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問GSM模塊POST方式發(fā)送數(shù)據(jù)失敗,GET請(qǐng)求卻成功了是怎么回事?

    POST請(qǐng)求數(shù)據(jù)寫進(jìn)去失敗了,GET請(qǐng)求成功,不知道是不是POST指令寫錯(cuò)了,求原子哥解答POST請(qǐng)求:AT+HTTPPARA="URL","http
    發(fā)表于 06-11 04:35

    labview實(shí)現(xiàn)登錄微信(不用Python節(jié)點(diǎn),直接面向底層post協(xié)議)

    就會(huì)一通百通,不光python可以登錄微信,C,VB,Java,labview,下面來展示原理: 核心關(guān)鍵點(diǎn):http的post請(qǐng)求,get請(qǐng)求,字符轉(zhuǎn)碼,根據(jù)接口解說實(shí)現(xiàn)功能, 注意:請(qǐng)求不能太快,0.5秒左右
    發(fā)表于 06-20 18:18

    GETPOST的請(qǐng)求示例流程

    WebClient軟件包提供兩個(gè)HTTPClient示例程序,分別用于演示軟件包支持的GETPOST功能,完成數(shù)據(jù)的上傳與下載。
    發(fā)表于 04-02 06:34

    如何通過GETPOST請(qǐng)求控制pwm占空比?

    我已經(jīng)將我的 ESP 設(shè)置為訪問點(diǎn),并嘗試通過 GETPOST 請(qǐng)求控制 pwm 占空比。我在 html 端使用以下 jquery 代碼:代碼:全選$.post("http
    發(fā)表于 02-28 08:03

    如何在POST標(biāo)注設(shè)置正文?

    我有一個(gè)連接到 esp8266 的濕度和溫度傳感器,現(xiàn)在我想將數(shù)據(jù)發(fā)送到云端。我無法上班的是 POST 電話。下面的 POST 請(qǐng)求在 Auth() 函數(shù)返回一條錯(cuò)誤消息,告訴我正文沒有按預(yù)期發(fā)送
    發(fā)表于 05-08 06:24

    ESP8266 AT模式開發(fā)GETPOST怎么填寫?

    ESP8266AT模式開發(fā)GETPOST怎么填寫?
    發(fā)表于 11-09 07:40

    什么是POST

    什么是POST POST指系統(tǒng)在接通電源后執(zhí)行一個(gè)自我檢查的例行程序,包括對(duì)CPU、主板、基本的640K內(nèi)存、1M以上的擴(kuò)展內(nèi)存、系統(tǒng)的ROM BI
    發(fā)表于 05-24 23:27 ?7073次閱讀

    http請(qǐng)求 get post

    ; importjava.util.List; importjava.util.Map;publicclassHttpRequest{/** * 向指定URL發(fā)送GET方法的請(qǐng)求 * *@paramurl * 發(fā)送請(qǐng)求
    發(fā)表于 09-27 10:36 ?16次下載

    PHPREQUEST和POSTGET有什么區(qū)別

    PHP中有$_REQUEST與$_POST、$_GET用于接受表單數(shù)據(jù)。 一、$_REQUEST與$_POST、$_GET的區(qū)別和特點(diǎn) $_REQUEST[]具用$_
    發(fā)表于 02-19 14:26 ?2次下載
    PHP<b class='flag-5'>中</b>REQUEST和<b class='flag-5'>POST</b>及<b class='flag-5'>GET</b>有什么區(qū)別

    getpost的請(qǐng)求一些區(qū)別

    今天再次看到這個(gè)問題,我也有了一些新的理解和感觸,臨時(shí)回顧了一下 getpost 的請(qǐng)求的一些區(qū)別。
    的頭像 發(fā)表于 09-07 10:00 ?1358次閱讀

    JavarestTemplate攜帶Header請(qǐng)求

    :userName}" ); 創(chuàng)建請(qǐng)求方式: HttpEntity POST請(qǐng)求 restTemplate發(fā)送POST請(qǐng)求時(shí)可以通過如下方法獲取 ResponseEntity
    的頭像 發(fā)表于 03-09 14:43 ?1082次閱讀

    HTTP請(qǐng)求報(bào)文:GETPOST的區(qū)別

    GETPOST 其實(shí)都是 HTTP 的請(qǐng)求方法。除了這 2 個(gè)請(qǐng)求方法之外,HTTP 還有 HEAD、PUT、DELETE、TRACE、CONNECT、OPTIONS 這 6 個(gè)請(qǐng)求方法。
    發(fā)表于 04-10 10:11 ?2205次閱讀

    HTTPGETPOST的區(qū)別是什么?

    GETPOST是HTTP請(qǐng)求的兩種基本方法,要說它們的區(qū)別,接觸過WEB開發(fā)的人都能說出一二。 最直觀的區(qū)別就是GET把參數(shù)包含在URLPO
    發(fā)表于 08-05 12:21 ?465次閱讀

    所有接口都用post請(qǐng)求的原因

    查看上面的區(qū)別,就會(huì)發(fā)現(xiàn)post在發(fā)送數(shù)據(jù)量大的請(qǐng)求時(shí)優(yōu)勢很顯示,get則更適合獲取靜態(tài)資源、簡單的查詢等接口。 我個(gè)人在開發(fā)接口的時(shí)候也會(huì)注意,將簡單的查詢請(qǐng)求使用get方法,其他增、刪、改、復(fù)雜的查詢請(qǐng)求都可以使用
    發(fā)表于 08-24 10:06 ?386次閱讀
    所有接口都用<b class='flag-5'>post</b>請(qǐng)求的原因

    HTTP GETPOST 的區(qū)別

    一、概述 HTTP 的請(qǐng)求報(bào)文 GET 方法的特點(diǎn) POST 方法的特點(diǎn) GETPOST 的區(qū)別 二、HTTP 的請(qǐng)求報(bào)文 首先我們要解決的第一個(gè)問題是:
    的頭像 發(fā)表于 11-11 14:40 ?944次閱讀
    HTTP <b class='flag-5'>中</b><b class='flag-5'>GET</b> 和 <b class='flag-5'>POST</b> 的區(qū)別