今天碰到个比较郁闷的问题。开放个接口给别人,让他们通过此 POST 数据给我,然后我接收验证保持后回发给标志(success或者failed)。
但是很郁闷的是,我数据已经接收到验证通过也保存了,回发个 success 状态时,对方始终没法收到争取的数据。
我的实现也很简单,建立个空白页面,然后在 page_load 事件里去处理逻辑
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> <asp:Literal ID="litTest" runat="server"></asp:Literal>
private void DoSomeThing() { bool isDone = Convert.ToBoolean(Request.Form["isDone"]); if (isDone) { //do some thing Response.Write("success"); } else { Response.Write("failed"); } }
但是,对方始终没办法接受到 success 字符串。我开始以为是对方区分大小写(java写的),但是对方说不区分,网络又没问题。正头疼,同事指着 Literal 控件问:这是干嘛的?得知没用后,把它删了,结果就可以了.....囧rz
其实原理同事也不懂,只是抱着解决问题,控制未知变量的思维,把可能出错的地方控制起来,结果还真是多这个控件的问题。
但是说郁闷的是,我自己通过写个客户端程序来 POST ,能正常返回 success(网页形式未测试)。不知道对方是用什么样的方式来提交数据的。
个人猜测,是不是跟对方POST方式有关(比如通过控制台而不是web),从而导致 Response.Write() 数据未被接收呢?