Не удается получить ответ XML с введенным угловым классом http 8 - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу выполнить службу HTTP и получить ответ в формате XML, используя angular (v8)

Я попытался написать службу, а затем использовать ее в своем компоненте. Вы можете найти следующий мой «угловой» код:

getConsultationPointSOAP(wsname:string): Observable<any>{

    return this.http.get<any[]>(this.baseUrl +":"+ PORT_NUM + 
      url+wsname+'?wsdl', 
      httpOptions).pipe(catchError(this.handleError));
}

private handleError(err: HttpErrorResponse) {
    console.log(err.message);
    return Observable.throw(err.message);
}

Затем в моем «угловом» компоненте

    ngOnInit() {

this.soapservice.getConsultationPointSOAPWs(this._url).subscribe(

        response => {
            this.soapservice = response.text;
            console.log("OKEY");
        },
        error => {
            console.log("error");
            console.log(error.text);
        }
    );
} 

при выполнении кода я получаю 200 в качестве статуса веб-службы иполучить ответ XML в моем браузере (вкладка «Сеть»), но я не могу получить результат в консоли. Он отображает: ошибка и Http-сбой при разборе «my_URL».

Я пробую несколько решений,и я буду благодарен, если вы знаете, как я могу решить эту проблему, или есть какое-либо решение для разбора.

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Я нахожу решение этой проблемы, я должен добавить в заголовок (обратите внимание на заголовок, а не httpHeaders) тип ответа, который я хочу получить в конце, в моем случае: responseType: text, чтобы предотвратить получениеисходный формат (json), здесь соответствующий код:

getConsultationPointSOAPWs(url: string) {

this.resultat = this.http.get (url, {headers: new HttpHeaders ({'Authorization': sessionStorage.getItem ('token)'),' Content-Type ':' application / xml '}), responseType:' text '});вернуть this.resultat;

}

0 голосов
/ 07 ноября 2019

Я не могу понять вашу структуру кода. Попробуйте изменить приведенный ниже код

this.soapservice.getConsultationPointSOAPWs(this._url).subscribe(
ngOnInit() {

    response => {
        this.soapservice = response.text;
        console.log("OKEY");
    },
    error => {
        console.log("error");
        console.log(error.text);
    }
);
}

на

ngOnInit() {
this.soapservice.getConsultationPointSOAPWs(this._url).subscribe(
response => {
    this.soapservice = response.text;
    console.log("OKEY");
},
error => {
    console.log("error");
    console.log(error.text);
}
);
}

Попробуйте изменить httpOptions на responseType: text getConsultationPointSOAP (wsname: string): Observable {

return this.http.get<any[]>(this.baseUrl +":"+ PORT_NUM + 
  url+wsname+'?wsdl', 
  {responseType: 'text'}).pipe(catchError(this.handleError));

} Я надеюсь, что это будет тренировка. Если все еще это не работает, тогда убедитесь, что в вашем скрипте бэкэнда вы не определяете заголовок как - ("Content-Type: application / json);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...