gpt4 book ai didi

xml - 在 Angular 5 上从 HTTPClient 检索 XML

转载 作者:数据小太阳 更新时间:2023-10-29 01:55:51 25 4
gpt4 key购买 nike

我正在尝试使用 HttpClientSOAP API 检索 xml从 Angular

这是我的 app.component.html 上的内容:

<input type="submit" value="test POST" (click)="onClickMe()"/>

这是在我的app.component.ts

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { HttpErrorResponse } from '@angular/common/http';
import { HttpHeaders } from '@angular/common/http';

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {

results: string[];
constructor(private http: HttpClient) {
console.log('constructor opened');

}
ngOnInit(): void{
console.log('onInit opened');

}

onClickMe(){
var emp = '<<credentials to the webservice>>';
var login = '<<credentials to the webservice>>';
var pass = '<<credentials to the webservice>>';
var id = "<<credentials to the webservice>>";

const body = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">\r\n <soap12:Body>\r\n <Lista xmlns=\"http://GSMMX.WebService/\">\r\n <Emp>"+emp+"</Emp>\r\n <Login>"+ login +"</Login>\r\n <Senha>"+ pass +"</Senha>\r\n <id>"+ id +"</id>\r\n </Lista>\r\n </soap12:Body>\r\n</soap12:Envelope>";
const url = "<<webserviceURL>>";
console.log('onClickme opened');

this.http.post(url, body, {
headers: new HttpHeaders()
.set('Content-Type', 'text/xml')
.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH,OPTIONS')
.append('Access-Control-Allow-Origin', '*')
.append('Access-Control-Allow-Headers', "Access-Control-Allow-Headers, Access-Control-Allow-Origin, Access-Control-Request-Method")
}).subscribe(data => {
console.log(data);

},
(err: HttpErrorResponse) => {
if (err.error instanceof Error) {
// A client-side or network error occurred. Handle it accordingly.
console.log('An error occurred:', err.error.message);
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
console.log(`Backend returned code ${err.status}, body was: ${err.error}`);
}
}
);

}


}

因此,我使用 Postman 执行了相同的请求,并完全按照成功的 POST 工作复制了 url 和正文。我尝试使用 Angular 5 来做到这一点,但它不起作用,它返回以下消息:

Backend returned code 200, body was: [object Object]

有人知道我该怎么做吗?请求获得 200 代码,但响应方式不正确。

感谢您的帮助!

最佳答案

如果你想获得文本形式的响应。您可以尝试添加 { responseType: 'text' }。

{
headers: new HttpHeaders()
.set('Content-Type', 'text/xml')
.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,PATCH,OPTIONS')
.append('Access-Control-Allow-Origin', '*')
.append('Access-Control-Allow-Headers', "Access-Control-Allow-Headers, Access-Control-Allow-Origin, Access-Control-Request-Method")
, responseType:'text'}

关于xml - 在 Angular 5 上从 HTTPClient 检索 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com