http方式的联调经验

    这近在做一个项目,现在刚与厂家做联调。我的系统是windows2008,他的测试机是unix,他本机是XP的。本来用httppost方式给他本机发送中文数据是正常的,但是发送到他的unix上,中文就变化了一大堆问号。开始觉得挺奇怪的,后来有个程序员说要对含有中文的URL进行编码。         

   stringResponse.Append("&Result=" +System.Web.HttpUtility.UrlEncode ("你好啊!") );

按照上面的方式确实解决了一个问题,但是因为在url传递很多内容,怕是会受到限制,我们就采用了传递XML.   (  request.ContentType = "text/xml;charset=UTF-8";)

           stringResponse.Append("<response>");
            stringResponse.Append("<RequestId>" + _requestId + "</RequestId>");
            stringResponse.Append("<Result>" + _result + "</Result>");
            stringResponse.Append("<CompanyCode>" + _companyCode + "</CompanyCode>");  
            stringResponse.Append("</response>");

传递过去以后是没有问题,但是在前面多了了一个问号。也确定了双方约定的格式都是utf-8,也不知道为什么。目前没有查到原因。

            userResponse.Result ="1";
            userResponse.RequestId = userRequest.RequestId;
            userResponse.CompanyCode = userRequest.CompanyCode;
            log.Info("操作结果状况:"+userResponse.ToString());
            Response.Write(userResponse.ToString());
            Response.Flush();
           // Response.Close();  //对方接收post数据超时,流没读完就关闭

还有一个问题是在传递的过程中,我如果将Response.Close();写上,对方会因为等待数据超时而失败。只能将这句话注释掉。具体原因也不知道。

 

这些问题都是我联调时的小问题,但是也是现在没想明白的。先记着,以后再看看能不能解决。

 

 

 

posted @ 2013-07-12 09:43  小傻瓜@&@  阅读(290)  评论(0编辑  收藏  举报