处理http发布请求

时间:2009-10-21 18:29:42

标签: http servlets post request

我有以下方案来实现:

我有一个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;
        }
    }
}

1 个答案:

答案 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