We've got a .net WebAPI which looks for a filepath string in the body of a post request and returns the corresponding image. I'm struggling to successfully pass a string to it from Angular 4.3 using the new httpClient. Is it possible? The endpoint's being used by other stuff so I don't really want to create a 'model' of... a string just so I can basically duplicate it but pass it json if possible.
WebAPI method signature:
public HttpResponseMessage ImagesFromPaths(HttpRequestMessage request, [FromBody] string path)
Current service method:
getImage(path: string): Observable<any> {
return this.http.post(
`${apiUrl}`,
{ path },
{ headers: new HttpHeaders({
'Content-Type': 'application/json',
}), responseType: 'blob',
})
}
Got to be an easy thing to achieve?
There is almost everything good with your code. Main issue is
Content-Type
header. If you want to send string to.NET
REST API with[FromBody]
annotation and useapplication/json
header value you should add""
to your path param for example"test_value"
:You can also use
x-www-form-urlencoded
header value. Then you must pass your param to request body in that way:I just tried another altrnative way by this options and directing posting String path Json to body of post method.
I would be happy if it works.Thanks
You can get the
path
fromquery
by removing[fromBody]
attributeand in post send path in
post
request${apiUrl}/${path}
: