问题描述
stringparam=string.Format("checkName={0}&checkCompany={1}&userName={2}&userNum={3}&userAddress{4}",this.EncodeConver(checkName),this.EncodeConver(checkCompany),this.EncodeConver(userName),this.EncodeConver(userNum),this.EncodeConver(userAddress));//所发送的数据stringresult=this.SendRequest(param);publicstringSendRequest(stringparam){ASCIIEncodingencoding=newASCIIEncoding();byte[]data=encoding.GetBytes(param);HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create("www.xxx.com");//数据发送端口request.Method="POST";//发送方式request.ContentType="application/x-www-form-urlencoded";request.ContentLength=data.Length;Streamsm=request.GetRequestStream();sm.Write(data,0,data.Length);sm.Close();HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();这个地方获取返回值,如果返回值是OK就继续操作if(response.StatusCode.ToString()!="OK")//还未获取返回值...}但是厂商那边只返回一个WEB页面,并不是返回给我一个字符串,而且WEB页面是什么也没说。我这里想获取这个URL的body,如果这个body里面的内容不为空,那么就证明他给了我返回,也就是说我数据发送成功了这个获取body的内容不为空应该如何来写,这里卡住了,不知道如何下手请大家帮帮忙!!!
解决方案
解决方案二:
up~
解决方案三:
自己顶下
解决方案四:
body不为空,就当做是有返回了这样太不确定了吧,最好是有个确定的标志吧
解决方案五:
判断body不为空,主要是看下body中是否有其他的表签了privateintCountSymbol(intsum,stringhtmlcontent){if(htmlcontent.IndexOf('>')!=-1||htmlcontent.IndexOf('<')!=-1){sum++;CountSymbol(sum,htmlcontent);}returnsum;}
调用函数得出的结果大于4,则成立,body中含有其他标签
解决方案六:
乖乖,这个约定也太粗糙了吧不过如果楼主的问题不难,就是要判断body标签内是否为空,简单的搜索匹配字符串呀。......Encodingencoding=System.Text.Encoding.GetEncoding(1252);StreamReaderreader=newStreamReader(response.GetResponseStream(),encoding);stringcontent=loResponseStream.ReadToEnd();if(MatchResult(content)){//返回数据成功}reader.Close();response.Close();privatestaticboolMatchResult(stringstr){stringregex="<\s*body\s*>\s*<\s*/\s*body\s*>";System.Text.RegularExpressions.RegexOptionsoptions=((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace|System.Text.RegularExpressions.RegexOptions.Multiline)|System.Text.RegularExpressions.RegexOptions.IgnoreCase);System.Text.RegularExpressions.Regexreg=newSystem.Text.RegularExpressions.Regex(regex,options);returnreg.IsMatch(str);}
解决方案七:
其实现在就是厂商那边没有提供具体返回的是什么而我这里要根据他是否返回了东西而进行操作,方便日后和他们核对所以HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();这个返回的地方怎么来判断?
解决方案八:
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();System.IO.StreamReaderreader=newSystem.IO.StreamReader(response.GetResponseStream(),System.Text.Encoding.GetEncoding("gb2312"));stringresult=reader.ReadToEnd();if(result!=""){//....}