我是Web API和HTTP的新手。
我正在使用MVC 6(测试版)。我有一个代理服务(Web API),它有一个POST方法来从另一个返回XML内容的服务获取响应。我需要将响应内容返回给客户端,因为客户端无法直接调用服务。
// In my proxy service
public HttpResponseMessage Post(String content)
{
using ( HttpClient client = new HttpClient() ) {
.......
HttpResponseMessage response = client.PostAsync(uri, content).Result;
// I get everything I need in the "response".
// How to return the response or it body to the client.
// return response;
}
}
II需要在没有或最小变化的情况下向客户返回“响应”。我试过“返回响应”,或者创建一个新的HttpResponseMessage,但我只有像
这样的东西{"Headers":[{"Key":"Content-Type","Value":["text/xml"]}]}
在体内。
那么有一种简单的方法将响应传递回客户端吗?感谢。
答案 0 :(得分:3)
ASP.NET团队目前正在开发一个代理中间件"这正是您正在寻找的:Adapter
以下是内部工作原理:
public void button1_Click(object sender, EventArgs e)
{
try
{
dataGridView1.DataSource = GetRESTData("http://localhost:55495/EventService.svc/GetAllEvents");
}
catch (WebException webex)
{
MessageBox.Show("Es gab so ein Schlamassel! ({0})", webex.Message);
}
}
private JArray GetRESTData(string uri)
{
var webRequest = (HttpWebRequest)WebRequest.Create(uri);
var webResponse = (HttpWebResponse)webRequest.GetResponse();
var reader = new StreamReader(webResponse.GetResponseStream());
string s = reader.ReadToEnd();
return JsonConvert.DeserializeObject<JArray>(s);
}