首页 新闻 会员 周边 捐助

c#调用webservice

0
悬赏园豆:50 [待解决问题]


走到这步走不动了 代码如下 求大神解答

public ERPResulModel AAA(string ServerPage, string workflowCode, string userCode, bool finishStart, rec[] list)
{
string postData = "workflowCode=" + workflowCode + "userCode=" + userCode + "finishStart=" + finishStart+ "paramValues="+list;

        byte[] dataArray = Encoding.Default.GetBytes(postData);

            //创建请求
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(ServerPage);
request.Method = "POST";
request.ContentLength = dataArray.Length;
request.ContentType = "application/x-www-form-urlencoded";
            //创建输入流
            Stream dataStream = null;
try
{
dataStream = request.GetRequestStream();
}
catch (Exception)
{
return null;//连接服务器失败
            }

        //发送请求
        dataStream.Write(dataArray, 0, dataArray.Length);
        dataStream.Close();
        //读取返回消息
        ERPResulModel resultModel = "";
        try
        {
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
            resultModel = reader.ReadToEnd();
            reader.Close();
        }
        catch (Exception ex)
        {
            return null;//连接服务器失败

            }
return resultModel;
}
}

素雅淡生丶的主页 素雅淡生丶 | 初学一级 | 园豆:47
提问于:2018-11-22 14:13
< >
分享
所有回答(7)
0

返回啥错误

画笔灬 | 园豆:920 (小虾三级) | 2018-11-22 14:14

直接完事了 但是接口没有执行 就连接服务器失败

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 14:18

{"操作超时"}

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 15:09

@素雅淡生丶: 超时连接断掉了,建议拿http请求工具先测一下地址的访问是否成功

支持(0) 反对(0) 画笔灬 | 园豆:920 (小虾三级) | 2018-11-22 15:51

@面具灬: dataStream.Write(dataArray, 0, dataArray.Length); 这句话调试的时候点开有2个错误
Length = '((System.Net.ConnectStream)dataStream).Length' threw an exception of type 'System.NotSupportedException'
Position = '((System.Net.ConnectStream)dataStream).Position' threw an exception of type 'System.NotSupportedException'

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-26 09:56
0

看看ex报的内容

rqx | 园豆:468 (菜鸟二级) | 2018-11-22 14:18

操作超时

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 15:08

{"操作超时"}

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 15:09

@素雅淡生丶: 你这里是接受数据,其他地方写数据的正确么?比如地址,端口,内容?

支持(0) 反对(0) rqx | 园豆:468 (菜鸟二级) | 2018-11-22 15:12

@rqx: 请问怎么确定是否正确

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 15:37

@素雅淡生丶: 比较准的办法,装个抓包工具比如wireshark,过滤IP,端口看看是否有数据发过来了,也可以通过代码确认,看看客户端上发送的url地址是否是服务器的,端口是否是正在监听的,网络是否可以连接,防火墙是否放开了,都没问题了,再看看服务器端是否监听了正确的端口,是否有数据包。。。

支持(0) 反对(0) rqx | 园豆:468 (菜鸟二级) | 2018-11-22 15:41

@rqx: dataStream.Write(dataArray, 0, dataArray.Length); 这句话调试的时候点开有2个错误
Length = '((System.Net.ConnectStream)dataStream).Length' threw an exception of type 'System.NotSupportedException'
Position = '((System.Net.ConnectStream)dataStream).Position' threw an exception of type 'System.NotSupportedException'

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-26 09:57
0

请求的服务端没有响应呗。等个几十秒等默认超时。或者可以设置request。timeout时间。确认你调用的接口是可用的。使用比如postman之类的工具测试一下先

czd890 | 园豆:14488 (专家六级) | 2018-11-22 14:19
0

ServerPage 中的 url 是否正确?

dudu | 园豆:30755 (高人七级) | 2018-11-22 14:44

url是正确 的

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 14:56

@素雅淡生丶: 异常被你 catch 掉了,临时改为下面的代码,就可以看到具体的异常信息

try
{
    //...
}
catch (Exception ex)
{
   throw ex;
   return null;
}
支持(0) 反对(0) dudu | 园豆:30755 (高人七级) | 2018-11-22 15:18

@dudu: 提示操作超时

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-22 15:38

@素雅淡生丶: 那就是连不上服务器,ServerPage 中的 url 通过浏览器可以访问吗?

支持(0) 反对(0) dudu | 园豆:30755 (高人七级) | 2018-11-22 15:41
0

调用webservice是这么调用的吗? 我是应用服务里用,你直接请求? 又不是webapi

jqw2009 | 园豆:2341 (老鸟四级) | 2018-11-22 16:50

详见本文鄙人回答:https://q.cnblogs.com/q/107032/
动态的时候,这么加无法搞。

支持(0) 反对(0) 花飘水流兮 | 园豆:13615 (专家六级) | 2018-11-23 12:13

@花飘水流兮: 你这排版有点乱,动态调用webservice也有方法的,但不是http这种模式,我之前也写过动态调用,地址传进来就行,不过开发的应用一般不会变地址的

支持(0) 反对(0) jqw2009 | 园豆:2341 (老鸟四级) | 2018-11-23 13:04

@jqw2009: dataStream.Write(dataArray, 0, dataArray.Length); 这句话调试的时候点开有2个错误
Length = '((System.Net.ConnectStream)dataStream).Length' threw an exception of type 'System.NotSupportedException'
Position = '((System.Net.ConnectStream)dataStream).Position' threw an exception of type 'System.NotSupportedException'

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-26 09:57
0

在浏览器中打开这个地址看看能不能访问

华临天下 | 园豆:1501 (小虾三级) | 2018-11-23 09:40
0

先看Rsp.StatusCode作分析。这卡起不代表什么,比如这个过程就是1分钟,那么你就得等一分钟才会跳过这个过程(前提还得网络连接超时设置大于1分钟)。

花飘水流兮 | 园豆:13615 (专家六级) | 2018-11-23 11:56

提示超时的话,要双方协商设置超时时间。通常都没设置的话,默认值是比较大的,这往往是受到网络因素制约。如果网络正常,你可以尝试设置更大超时时间,如果服务器很小的的话,也需要服务器设置。

支持(0) 反对(0) 花飘水流兮 | 园豆:13615 (专家六级) | 2018-11-23 12:00

@花飘水流兮: dataStream.Write(dataArray, 0, dataArray.Length); 这句话调试的时候点开有2个错误
Length = '((System.Net.ConnectStream)dataStream).Length' threw an exception of type 'System.NotSupportedException'
Position = '((System.Net.ConnectStream)dataStream).Position' threw an exception of type 'System.NotSupportedException'

支持(0) 反对(0) 素雅淡生丶 | 园豆:47 (初学一级) | 2018-11-26 09:57

@素雅淡生丶: 网络流不支持Seek的哈。老老实实写肯定没问题的

支持(0) 反对(0) 花飘水流兮 | 园豆:13615 (专家六级) | 2018-11-26 12:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册