使用java web服务出错

本文关键字:出错 服务 web java 使用 | 更新日期: 2023-09-27 18:17:51

我在winform应用程序中使用java web服务时出现错误

错误是

如果设置ContentLength>0或SendChunked = = true。通过调用[Begin]GetRequestStream来实现[开始]GetResponse。

使用java服务的代码

       public  byte[] StringToByteArray(string stringData)
        {
        System.Text.UTF8Encoding Encoding = new System.Text.UTF8Encoding();
        return Encoding.GetBytes(stringData);
        }
       private void button1_Click(object sender, EventArgs e)
        {
         string DATA = @"<RepositoryType>117</RepositoryType>
                       <RepositoryCategory>0</RepositoryCategory>
                       <ModifiedBy>2825</ModifiedBy>
                       <ReferenceCode>0</ReferenceCode>
                      <FromDate>2015-10-14T11:50:00</FromDate>
                      <ToDate>2015-10-14T11:51:00</ToDate>
                      <RepositoryName>ashok</RepositoryName>
                      <RepositoryShortName>kumar</RepositoryShortName>
                      <RepositoryDesc>nothing</RepositoryDesc>
                      <Fixed>F</Fixed>
                      <IsValid>true</IsValid>
                       <lstVisa />
                      <SortOrder>0</SortOrder>
                     </Repository>";`
                     byte[] postdata = null;
                    HttpWebRequest _WebRequest = null;
        HttpWebResponse webresponse = null;
        StreamReader ResponseStream = null;
        string sReturnVal = string.Empty;
        string
serviceAddress="http://172.16.12.21:8888/XML_RESPONSE/rest/test/xmltest/";

         try
         {
            _WebRequest = (HttpWebRequest)WebRequest.Create(serviceAddress + "/" + DATA);
            postdata = StringToByteArray(DATA);
            if (_WebRequest != null)
            {
                if (postdata!=null)
                {

                    _WebRequest.Method = "POST";
                    _WebRequest.ContentType= "text/xml";
                    _WebRequest.ContentLength = postdata.Length;
                    _WebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
                    _WebRequest.SendChunked = true;

                }


                    **webresponse = (HttpWebResponse)_WebRequest.GetResponse();**
                    {
                            if (webresponse.Headers.Get("Content-Encoding") != null && webresponse.Headers.Get("Content-Encoding").ToLower() == "gzip")
                                ResponseStream = new StreamReader(new GZipStream(webresponse.GetResponseStream(), CompressionMode.Decompress));
                            else
                            {
                                Encoding enc = System.Text.Encoding.GetEncoding(1252);
                                ResponseStream = new StreamReader(webresponse.GetResponseStream(), enc);
                            }
                            if (ResponseStream != null)
                            {
                                XElement Root = XElement.Load(ResponseStream);
                                sReturnVal = Root.Value;
                            }
                    }
            }
            else
            {
                throw new Exception("Connection to " +  " Service could not be Established.",
                    new Exception("Please Check whether " + 
                        " Service is running Or Contact your System Administrator."));
            }
         }
         catch(Exception ex)
         {
         }
    }

高亮显示的行出现错误。

使用java web服务出错

您正在将数据添加到URL中,而不是将其作为请求正文发布。看看这个问题,你可以使用的工作代码:使用web服务的HTTP POST。ASP。. NET webservices你必须设置SOAPAction HTTP头,如果你的服务不需要它,你可以跳过这一行。