天天看點

用RestTemplate模拟ajax登入,發送POST請求代碼如下:

代碼如下:

package con.bd720.service;

import net.sf.json.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.*;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

@RunWith(SpringRunner.class)
@SpringBootTest
public class CommTest {

    /* *
     * 功能描述 模拟ajax登入方法
     * @author duxiaod
     * @date 2019/4/11
     * @param [url, params]
     * @return [url, params]
     */
    public  static  JSONObject login(String url,MultiValueMap<String, String> params){
        RestTemplate client = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        HttpMethod method = HttpMethod.POST;
        // 以表單的方式送出
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
        //将請求頭部和參數合成一個請求
        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
        //執行HTTP請求,将傳回的結構使用JSONObject類格式化
        ResponseEntity<JSONObject> response = client.exchange(url, method, requestEntity, JSONObject.class);
       return  response.getBody();
    }

    @Test
    public void loginTest(){
        String url= "http://192.168.1.141:8085/a/login?_ajax";
        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.add("username","jgfzr");
        params.add("password","111");
        params.add("mobileLogin","true");
        JSONObject result = login(url, params);
        System.out.println("success:"+result.get("success"));
        System.out.println("body:"+result.get("body"));
    }
}
           

繼續閱讀