У меня есть этот общий обработчик в C#:Сопряжение с Generic Handler
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace RequestResponse
{
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string function = context.Request.QueryString["function"];
Methods m = new Methods();
if(function.Equals("addition"))
{
int num1 = Convert.ToInt32(context.Request.QueryString["num1"]);
int num2 = Convert.ToInt32(context.Request.QueryString["num2"]);
int answer = m.addition(num1, num2);
context.Response.Write(answer);
}
if (function.Equals("subtraction"))
{
int num1 = Convert.ToInt32(context.Request.QueryString["num1"]);
int num2 = Convert.ToInt32(context.Request.QueryString["num2"]);
int answer = m.subtraction(num1, num2);
context.Response.Write(answer);
}
if(function.Equals("reverseString"))
{
string text = context.Request.QueryString["text"];
text = m.reverseString(text);
context.Response.Write(text);
}
if (function.Equals("CalculateMD5Hash"))
{
string text = context.Request.QueryString["text"];
text = m.CalculateMD5Hash(text);
context.Response.Write(text);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
У меня также есть это клиентское приложение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
namespace Client
{
public partial class HomePage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (TextBox_Function.Text.Equals("addition"))
{
int num1 = Convert.ToInt32(TextBox_Num1.Text);
int num2 = Convert.ToInt32(TextBox_Num2.Text);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:4000/Handler.ashx?function=" + TextBox_Function.Text + "&num1=" + num1 + "&num2=" + num2);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String answer = response.ToString();
Session["answer"] = answer;
Response.Redirect("Results.aspx");
}
if (TextBox_Function.Text.Equals("subtraction"))
{
int num1 = Convert.ToInt32(TextBox_Num1.Text);
int num2 = Convert.ToInt32(TextBox_Num2.Text);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:4000/Handler.ashx?function=" + TextBox_Function.Text + "&num1=" + num1 + "&num2=" + num2);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String answer = response.ToString();
Session["answer"] = answer;
Response.Redirect("Results.aspx");
}
if (TextBox_Function.Text.Equals("reverseString"))
{
String text = TextBox_Text.Text;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:4000/Handler.ashx?function=" + TextBox_Function.Text + "&text=" + text);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String answer = response.ToString();
Session["answer"] = answer;
Response.Redirect("Results.aspx");
}
if (TextBox_Function.Text.Equals("CalculateMD5Hash"))
{
String text = TextBox_Text.Text;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:4000/Handler.ashx?function=" + TextBox_Function.Text + "&text=" + text);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
String answer = response.ToString();
Session["answer"] = answer;
Response.Redirect("Results.aspx");
}
}
}
}
Теперь, давайте предположим, что в моем клиентском приложении, я обеспечиваю «добавление» в качестве функции «3» как num1 и «5» в качестве num2.
Почему ответ генерируется (хранится в переменной ответа) является:
System.Net.HttpWebResponse
Что я делаю неправильно? Пожалуйста, несите меня, поскольку я никогда не общался между двумя приложениями таким образом.
Что вы сделали неправильно, так это то, что вы не смотрели документацию для класса HttpWebResponse. Пойдите, сделайте это сейчас. –
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
@JohnSaunders Ok спасибо – Matthew