问题描述
WebRequestrequest=WebRequest.Create("http://www.travelsky.com/tsky/validate");//Post请求方式request.Method="POST";//设置请求参数stringpostData="pName=小明&eticketNoORIn=880-2178876342&randCode="+textBox1.Text.Trim()+"";//将URL编码后的字符串转化为字节byte[]byteArray=Encoding.UTF8.GetBytes(postData);request.ContentType="application/x-www-form-urlencoded";//设置请求的ContentLengthrequest.ContentLength=byteArray.Length;//获得请求流StreamdataStream=request.GetRequestStream();//将请求参数写入流dataStream.Write(byteArray,0,byteArray.Length);//关闭请求流dataStream.Close();//获得响应流WebResponseresponse=request.GetResponse();dataStream=response.GetResponseStream();StreamReaderreader=newStreamReader(dataStream);stringresponseFromServer=reader.ReadToEnd();reader.Close();dataStream.Close();response.Close();以上是源码,服务器返回的数据是不带参数的XML,我设置的参数没起到作用,求大神指点!
解决方案
解决方案二:
来个大神啊!
解决方案三:
你在浏览器里按F12打开开发者模式,在网络选项卡里面可以看到提交的内容类似下面的validateFlag=0&eticketNo=8802178876342&invoiceNo=&imgSrc=%2Ftsky%2Fimages%2Floading.gif&eticketNoORIn=880-2178876342&passengerName_src=%E5%B0%8F%E6%98%8E&passengerName=%25E5%25B0%258F%25E6%2598%258E&randCode=BUS6&rcvFlag=
包括validateFlageticketNoinvoiceNoimgSrceticketNoORInpassengerName_srcpassengerNamerandCodercvFlag,而你的只有pNameeticketNoORInrandCode并且参数是要encode的,其中passengerName是把passengerName_src参数encode之后在encode。
解决方案四:
按照你说的,改过之后还是不行呢,参数都没问题,我仔细对照过了!出来的结果少了一部分数据!