mysql5资源共享

 找回密码
 立即注册
查看: 130|回复: 12

[PowerBuilder] 【基础】PB调用WEBSERVICE出现HTTP 417错

[复制链接]

4

主题

64

帖子

146

积分

注册会员

Rank: 2

积分
146
发表于 2019-7-8 23:10:01 | 显示全部楼层 |阅读模式
查了资料,如果是.NET开发的话,需要在调用前,加上这么一句话:System.Net.ServicePointManager.Expect100Continue=false;

问题来了,PB里怎么加上这个代码?
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-9 15:07:57 | 显示全部楼层
试试在IISwebservice目录下得WEB。config加入配置:













回复

使用道具 举报

4

主题

64

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2019-7-10 08:56:48 | 显示全部楼层
引用1楼WMERP的回复:试试在IISwebservice目录下得WEB。config加入配置:













我是PB开发的客户端程序,不需要设置web.config.程序已经运行了两年了,一直很正常,最近才突然出现的。疑是服务端的配置做了什么微调。如果是要改服务端,对方是不会答应的。查了资料,只能客户端发出关掉expect100continue参数就可。PB怎么做呢?

回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-10 15:09:04 | 显示全部楼层
https://blog.csdn.net/youzilong202/article/details/41175053
回复

使用道具 举报

4

主题

64

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2019-7-10 16:09:44 | 显示全部楼层
引用3楼WMERP的回复:https://blog.csdn.net/youzilong202/article/details/41175053

PB中怎么加上所需要的这一句?
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-11 02:26:20 | 显示全部楼层
Bloblblb_args
Stringls_headers
Stringls_url
Longll_length,ll_rest
ls_url="https://api.douban.com/v2/book/isbn/"+as_isbn//https://api.douban.com/v2/book/isbn/9787516211366
Stringls_data,ls_response

OleObjectlole_tenyear//声明ole
lole_tenyear=CREATEoleobject
lole_tenyear.ConnectToNewObject("Microsoft.XMLHttp")//我测过xp和win7都自带
lole_tenyear.open("POST",ls_url,false)

lole_tenyear.setRequestHeader("Content-type","application/x-www-form-urlencoded")
lole_tenyear.setRequestHeader('Content-Length',string(len(ls_data)))
//lole_tenyear.send('')
lole_tenyear.send(ls_data)

doWhilelole_tenyear.readyState4//'查询状态,延时
yield()
Loop
ls_response=lole_tenyear.responseText//返回结果

IFlole_tenyear.Status>=300THEN
//MessageBox("HTTPrequestfailed:",lole_tenyear.StatusText,Exclamation!,OK!)
ENDIF

destroylole_tenyear
returnls_response

我这里没有试过,以前也没有用过,一起探讨下,应该是设置在header
lole_tenyear.setRequestHeader("servicePointManagerexpect100Continue","false")或者其他表述
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-11 02:29:14 | 显示全部楼层
lole_tenyear.ServicePoint.Expect100Continue=false也可以试试
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-11 02:32:27 | 显示全部楼层
你是用的HTPP请求还是PB自带的SOAP?
回复

使用道具 举报

4

主题

64

帖子

146

积分

注册会员

Rank: 2

积分
146
 楼主| 发表于 2019-7-11 21:29:50 | 显示全部楼层
引用7楼WMERP的回复:你是用的HTPP请求还是PB自带的SOAP?

soapconnection        lsc_conn
sendrecv                                lsrv_sendrecv
string                                        ls_wsdl="http://biz.smpaa.cn/ysxtqx-ws/services/dispatcher?wsdl"
string                                        ls_reponse

try
        lsc_conn=createsoapconnection
       
        lsc_conn.createinstance(lsrv_sendrecv,"sendrecv",ls_wsdl)

        ls_reponse=lsrv_sendrecv.callsendrecv(is_user,is_pwd,is_companycode,is_version,as_datatype,as_sign,as_data)

catch(SoapExceptione1)
endtry

回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-12 18:30:31 | 显示全部楼层
这个我就没办法了,PBSOAP好像没法设置这个,你可以考虑下用上面我贴出来的HTTP模式试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|mysql5.com Inc. ( 闽ICP备17002856号-1 )

GMT+8, 2019-10-23 00:07 , Processed in 0.050435 second(s), 18 queries .

Powered by MySQL5.com X3.4

© 2003-2019 MySQL5.com.

快速回复 返回顶部 返回列表