gpt4 book ai didi

asp.net-mvc-3 - WebService ASP.NET MVC 3发送和接收

转载 作者:行者123 更新时间:2023-12-02 03:58:23 24 4
gpt4 key购买 nike

我已经花了几天时间思考如何满足新要求。

我有两个网站。第一个允许用户填写应用程序。第二个网站是用于管理用户应用程序的内部网站。我需要开发一个“Web服务”,将网站1的应用程序数据发送到网站2,并向网站2返回成功或失败的响应。我以前从未做过Web服务,并且对从何开始感到困惑。我一直在网上阅读各种示例,但是它们似乎都只是构建Web服务的起点……没有具体的示例。

因此,要发布数据网站1,我的 Controller 方法会是什么样?我是否使用Json将数据发布到网站2?什么样的例子?指向网站2的方法中是否存在某种形式的重定向?

因此,为了将响应发布回网站2,该 Controller 方法将是什么样?我想我会再次使用Json将响应发送回网站1?指向网站1的方法中是否存在某种形式的重定向?

最佳答案

我将使用JSON并将应用程序发布到Web服务。

首先,我假设应用程序数据包含在某种对象中。使用JSON.Net将对象序列化为JSON。它看起来像下面的代码。

var application = new Application();
string serializedApplication = JsonConvert.Serialize(application);

其次是将代码发布到端点(webservice,mvc操作)。为此,您需要向端点发出一个HTTPRequest。以下代码是我用来发布代码的代码。
    public bool Post(string url, string body)
{
//Make the post
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;

var bytes = Encoding.Default.GetBytes(body);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
Stream stream = null;
try
{
request.KeepAlive = false;
request.ContentLength = bytes.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = -1;
request.Method = "POST";
stream = request.GetRequestStream();
stream.Write(bytes, 0, bytes.Length);

}
finally
{
if (stream != null)
{
stream.Flush();
stream.Close();
}
}

bool success = GetResponse(request);

return success;
}

public bool GetResponse(HttpWebRequest request)
{
bool success;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{

using (Stream responseStream = response.GetResponseStream())
{
if (response.StatusCode != HttpStatusCode.OK && response.StatusCode != HttpStatusCode.Created)
{
throw new HttpException((int)response.StatusCode, response.StatusDescription);
}

var end = string.Empty;
using (StreamReader reader = new StreamReader(responseStream))
{
end = reader.ReadToEnd();
reader.Close();

success = JsonConvert.DeserializeObject<bool>(end);
}

response.Close();
}
}

return success;
}

因此,现在您可以将JSON POST到端点并接收响应,下一步就是创建端点。以下代码将使您开始在mvc中的端点上运行,该端点将接收应用程序并对其进行处理。
    [HttpPost]
public ActionResult SubmitApplication()
{
//Retrieve the POSTed payload
string body;
using (StreamReader reader = new StreamReader(Request.InputStream))
{
body = reader.ReadToEnd();
reader.Close();
}

var application = JsonConvert.Deserialize<Application>(body);

//Save the application
bool success = SaveApplication(application);

//Send the server a response of success or failure.
return Json(success);
}

上面的代码是一个好的开始。请注意,我 尚未测试此代码。

关于asp.net-mvc-3 - WebService ASP.NET MVC 3发送和接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11568453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com