使用 Angular 向 Asp.net Web 服务发送请求



我使用Postman执行了一个Web服务,它被正确执行。现在我想使用 Angular 向 Web 服务发送请求

这是 Asp.net Web 服务

这是我的 Web 服务的代码

public class Temperature : System.Web.Services.WebService
{
[WebMethod]
public double Farenheit(double celsius)
{
return  (celsius * 9) / 5 + 32;
}
[WebMethod]
public double Celsius(double fahrenheit)
{
return (fahrenheit - 32) * 5 / 9;
}
}

这是我如何使用PostMan发送请求的屏幕截图,它按预期工作

使用 Postman 调用 Web 服务的屏幕截图

这是 Angular 的代码

const httpOptions = {
headers: new HttpHeaders({
'Content-Type':  'text/xml',
})
};

this.http.post('https://localhost:44389/Temperature.asmx/Celsius', '50',  httpOptions)
.subscribe(res => {
console.log('Data: ' + res);
})

这是我收到的错误

错误

"System.InvalidOperationException: Request format is invalid: text/xml.
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
"

消息

Http failure response for https://localhost:44389/Temperature.asmx/Celsius: 500 OK

名字

"HttpErrorResponse"

你的"内容类型":"text/xml">更改为"内容类型":"应用程序/json">

试试这个:

import { HttpHeaders } from '@angular/common/http';
setHttpHeader() {
const headers = new HttpHeaders().set('Accept', 'application/json').set('Content-Type', 'application/json');
let options = { headers: headers };
return options;
}

this.http.post('https://localhost:44389/Temperature.asmx/Celsius', '50', this.setHttpHeader())
.subscribe(res => {
console.log('Data: ' + res);
})

相关内容

  • 没有找到相关文章

最新更新