我有以下方案来实现:
我有一个ASP.NET网站。单击我站点中的按钮,用户将被重定向到第三方站点。当用户在此第三方站点中执行某些操作时,该站点会每隔1分钟开始向我的站点发送一条特殊消息的http发送请求。
现在,问题是我应该处理和处理这些请求,但我不知道该怎么做。请注意,从第三方网站发送的请求不会通过http发布请求打开我的网站。这些请求是某种后台请求,即它们不直接打开页面,因此应该使用其他方法处理它们。
我有Java解决方案。它被称为Servlet。在servlet的帮助下,我可以用Java做我想要的东西。但是,我需要在ASP.NET中使用相同的功能吗?有人有解决方案吗?
非常感谢!
P.S。仅供参考,这是servlet的Java代码:
package payment;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import beans.action.PaymentBean;
public class EPayRequestCatcher extends javax.servlet.http.HttpServlet
implements javax.servlet.Servlet{
static final long serialVersionUID = 1L;
public EPayRequestCatcher() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
String encoded = request.getParameter("encoded");
PaymentUtil util = new PaymentUtil();
if (encoded != null) {
String decoded = util.getDecodedB64Data(encoded);
int invStart = decoded.indexOf("=") + 1;
int invEnd = decoded.indexOf(":", invStart);
String invoice = decoded.substring(invStart, invEnd);
System.out.println("" + invoice);
String checksum = request.getParameter("checksum");
PaymentBean bean = new PaymentBean();
String responseStatus = bean.getEpayRequest(encoded, checksum);
if (!responseStatus.equals("")) {
String responseData = "INVOICE=" + invoice + ":STATUS=" + responseStatus + "\n";
System.out.println(responseData);
response.getWriter().append(responseData);
}
}
else {
return;
}
}
}
答案 0 :(得分:0)
位访问者,
如果我理解得很好,外部网站会将一些数据发布到您的ASP.NET网站;你(可能)定义一个页面来接收那个帖子而不知道如何处理它,对吗?
好吧,你可以尝试类似的东西:
protected void Page_Load(object sender, EventArgs e)
{
string encoded = Request["encoded"];
string checksum = Request["checksum"];
// do stuff
Response.Write("some response");
}
这可能就足够了,具体取决于您的要求。
HTH