问题描述
WebClienttry{WebClientwc=newWebClient();wc.Headers.Add("Content-Type","application/json");wc.Headers.Add("Cookie","rmbUser=true;userName=25120811004;"+FullWebBrowserCookie.GetCookieInternal(newUri("http://155.16.161.15:8082"),true));byte[]postData=Encoding.UTF8.GetBytes(paramStr);byte[]responseData=wc.UploadData(uri,"POST",postData);returnEncoding.UTF8.GetString(responseData);}catch(Exceptionex){returnex.ToString();}
HttpWebRequestCookieContainermyCookieContainer=newCookieContainer();Uriuri=newUri("http://155.16.161.15:8082");stringcookieStr="rmbUser=true;userName=25120811004;"+FullWebBrowserCookie.GetCookieInternal(uri,true);string[]cookstr=cookieStr.Split(';');foreach(stringstrincookstr){string[]cookieNameValue=str.Split('=');Cookieck=newCookie(cookieNameValue[0].Trim().ToString(),cookieNameValue[1].Trim().ToString());myCookieContainer.Add(uri,ck);}HttpWebRequestrequest=(HttpWebRequest)HttpWebRequest.Create(url);request.Method="POST";request.ContentType="application/json";request.Accept="application/json,text/javascript,*/*;q=0.01";request.Headers.Add("Accept-Encoding","gzip,deflate");request.Timeout=15000;request.AllowAutoRedirect=true;request.CookieContainer=myCookieContainer;request.Referer=referer;StreamWriterrequestStream=null;HttpWebResponseresponse=null;stringresponseStr=null;try{requestStream=newStreamWriter(request.GetRequestStream());requestStream.Write(param);requestStream.Close();response=(HttpWebResponse)request.GetResponse();if(response!=null){Streamst=response.GetResponseStream();if(response.ContentEncoding.ToLower().Contains("gzip"))st=newGZipStream(st,CompressionMode.Decompress);StreamReaderreader=newStreamReader(st,Encoding.UTF8);responseStr=reader.ReadToEnd();reader.Close();}}catch(Exceptionex){showMsg(ex.ToString());throw;}finally{request=null;requestStream=null;response=null;}returnresponseStr;
接口注:就这一个接口获取不到数据,其他这个网站的接口都可以获取的到json数据其中json字段为空就是这个接口无法获取返回的数据下面是可以获取数据的接口这个是可以获取到数据的,对应的数据库id=1280求大神讲解为什么第一个获取不到数据
解决方案
解决方案二:
你传递的postData格式正确吗?那个有问题的接口,能正确解析你传递的json吗?会不会出现异常导致接口访问的失败?查找日志
解决方案三:
引用1楼hanjun0612的回复:
你传递的postData格式正确吗?那个有问题的接口,能正确解析你传递的json吗?会不会出现异常导致接口访问的失败?查找日志
这个问题我肯定是检查了N次了,接口是别人的我只能确保我这边发送的json格式是完全正确的
解决方案四:
至今还未解决
解决方案五:
你第一个接口的POST是流的文件或者图片上传的method是不一样的。下面是客户端的异步传输代码楼主可以参考一下using(HttpClientclient=newHttpClient()){client.DefaultRequestHeaders.Accept.Add(newMediaTypeWithQualityHeaderValue("text/json"));using(varcontent=newMultipartFormDataContent()){List<ByteArrayContent>files=newList<ByteArrayContent>();foreach(varfileinRequest.PhotoList){varfileContent=newByteArrayContent(File.ReadAllBytes(file.FilePath));fileContent.Headers.ContentDisposition=newContentDispositionHeaderValue("attachment"){FileName=Path.GetFileName(file.FilePath)};files.Add(fileContent);}Action<List<ByteArrayContent>>act=(dataContents)=>{foreach(varbyteArrayContentindataContents){content.Add(byteArrayContent);}};act(files);varResponse=client.PostAsync(ClientUrl,content).Result;if(Response!=null&&Response.IsSuccessStatusCode){.................}}}}