繁体   English   中英

离子3的HTTP发布

[英]HTTP Post with ionic 3

我正在尝试调用本地Rest Web服务来测试我使用Get函数尝试过的简单登录功能,现在它可以正常工作了,我正在尝试使用Post函数,而且我不知道如何将参数传递给我的请求

 import { HttpClient,HttpParams } from '@angular/common/http'; import { Injectable } from '@angular/core'; import {Storage} from "@ionic/storage"; // import { HttpParams } from '@angular/http'; /* Generated class for the RestProvider provider. See https://angular.io/guide/dependency-injection for more info on providers and Angular DI. */ @Injectable() export class RestProvider { apiUrl = 'http://localhost:8080/CrunchifyTutorials/api/crunchifyService'; user : any; constructor(public http: HttpClient, public storage: Storage) { console.log('Hello RestProvider Provider'); //console.log(this.storage.get('user')); } // getUsers() { // return new Promise(resolve => { // this.http.get(this.apiUrl).subscribe(data => { // resolve(data); // this.storage.set('user', data); // }, err => { // console.log(err); // }); // }); // } //-------------------------------------------- getUsers() { // let data = new URLSearchParams(); // data.append('user', 'khaled'); // data.append('pass', 'khaled'); //data =Object.assign(urlSearchParams, {search: "person"}); const data = new HttpParams() .set('user', 'khaled').set('pass', 'khaled'); this.http .post(this.apiUrl, data, {headers:{'Content-Type': 'application/json'}}) .subscribe(data => { alert('ok'); }, error => { console.log(error.json()); }); } } 

和Java部分

 @POST @Path("/crunchifyService") @Produces("application/json") @Consumes("application/json") public Modele add (String user, String pass) throws ClassNotFoundException, SQLException{ Auth_Ctrl auth = new Auth_Ctrl(); int result =auth.connect(user, pass); return auth.info(result); } 

问题是,当我调试服务器部分时,我所有的参数都为空,并且客户端部分中没有错误

您正在使用使用获取参数的@QueryParam 这些参数应包含在url中。 http.post方法将数据编码为请求正文中的application/json

您应该更改其中一个以匹配另一个。 我的建议是将Java更改为使用applications/json因为出于安全考虑,将密码放在url中

对于谁可能感兴趣的我修改了我的代码,就像我添加了一个包含两个字段user的类“ Log”,并通过此链接传递了我的Web服务,然后我修改了我的方法

 @POST @Path("/crunchifyService") @Produces("application/json") @Consumes("application/json") public Modele auth (Log user) throws ClassNotFoundException, SQLException{ Auth_Ctrl auth = new Auth_Ctrl(); int result =auth.connect(user.user, user.pass); return auth.info(result); } 
我注意到我需要将jackson-mapper-asl添加到我的类路径中,然后一切正常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM