没有MediaTypeFormatter可用于从媒体types为“text / plain”的内容读取“String”types的对象,

这是情况:

他们是在Servoy中的外部Web服务,我想在ASP.NET MVC应用程序中使用这个服务。

有了这个代码,我试图从服务中获取数据:

HttpResponseMessage resp = client.GetAsync("http://localhost:8080/servoy-service/iTechWebService/axws/shop/_authenticate/mp/112818142456/82cf1988197027955a679467c309274c4b").Result; resp.EnsureSuccessStatusCode(); var foo = resp.Content.ReadAsAsync<string>().Result; 

但是当我运行应用程序,我得到了下一个错误:

没有MediaTypeFormatter可用于从媒体types为“text / plain”的内容读取“String”types的对象。

如果我打开Fiddler并运行相同的URL,我看到正确的数据,但内容types是文本/纯文本。 然而,我看到在提琴手也JSON我想…

有没有可能在客户端解决这个问题呢,还是Servoy的web服务?

更新:
使用HttpWebRequest而不是HttpResponseMessage并使用StreamReader读取响应…

尝试使用ReadAsStringAsync()来代替。

  var foo = resp.Content.ReadAsStringAsync().Result; 

ReadAsAsync<string>()不起作用的原因是因为ReadAsAsync<>会尝试使用默认的MediaTypeFormatter (即JsonMediaTypeFormatterXmlMediaTypeFormatter ,…)来读取content-typetext/plain 。 但是,默认格式化程序都不能读取text/plain (它们只能读取application/jsonapplication/xml等)。

通过使用ReadAsStringAsync() ,无论内容types如何,内容都将以stringforms读取。