posturl用法

yuanjinet 2003-11-26 09:30:01
li_rc = GetContextService( "Internet", iinet_base )
IF li_rc = 1 THEN
ls_url = "http://120.250.58.56/asd.asp?user=ddd&msg=s_msg&pwd=561222"
lblb_args = blob("")
ll_length = Len( lblb_args )
ls_header = "Content-Length: " + String( ll_length ) + "~n~n"
li_rc = iinet_base.PostURL(ls_url,lblb_args,ls_header,ir)
end if
li_rc总是返回-1,错误在那里?
...全文
1053 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
SevenDrop 2004-01-07
  • 打赏
  • 举报
回复

PostUrl如果需要从远程返回数据,不能超过5K,原因在Microsoft网站可以找到.
我尝试过用InternetResult取数据,但是到5K左右就断.
建议应用Winsock控件.
dingzhaofeng 2004-01-07
  • 打赏
  • 举报
回复
up
banalman 2004-01-04
  • 打赏
  • 举报
回复

必须创建一下,但是您的程序没有
另外补充一句 internetResult 必须重载 它的internetdata 函数将里面的data 存放到您自己的变量理,否则,你呢不能取得返回值
banalman 2004-01-04
  • 打赏
  • 举报
回复

InternetResult 必须从程序中继承一个。
flyerlxg 2004-01-03
  • 打赏
  • 举报
回复
study and help you up
wantsong 2004-01-03
  • 打赏
  • 举报
回复
Inet
The Inet object provides the ability to display a Web page in the default browser, access the HTML for a specified page, and send data to a CGI, ISAPI, or NSAPI program.
linleming 2003-11-26
  • 打赏
  • 举报
回复
This example calls the PostURL function using server port 8080. Iinet is an instance variable of type inet:

Blob lblb_args

String ls_headers

String ls_url

Long ll_length

iir_msgbox = CREATE n_ir_msgbox

ls_url = "http://coltrane.sybase.com/"

ls_url += "cgi-bin/pbcgi60.exe/"

ls_url += "myapp/n_cst_html/f_test?"

lblb_args = blob("")

ll_length = Len(lblb_args)

ls_headers = "Content-Length: " &

+ String(ll_length) + "~n~n"

iinet.PostURL &

(ls_url, lblb_args, ls_headers, 8080, iir_msgbox)

This example shows the use of a header with the correct content-type for a form:

Blob lblb_args

String ls_headers

String ls_url

String ls_args

long ll_length

integer li_rc



li_rc = GetContextService( "Internet", iinet_base )

IF li_rc = 1 THEN

ir = CREATE n_ir

ls_url = "http://localhost/Site/testurl.stm?"

ls_args = "user=MyName&pwd=MyPasswd"

lblb_args = Blob( ls_args )

ll_length = Len( lblb_args )

ls_header = "Content-Type: " + &

"application/x-www-form-urlencoded~n" + &

"Content-Length: " + String( ll_length ) + "~n~n"

li_rc = iinet.PostURL( ls_url, lblb_args, &

ls_header, ir )

END IF
xyzliuin 2003-11-26
  • 打赏
  • 举报
回复
PostURL()
功能执行HTTP Post,这样PowerBuilder应用程序就可以通过CGI、NSAPI、ISAPI接口发送请求。
语法servicereference.PostURL ( urlname, urldata, headers, data )
参数
servicereference:Inet对象实例或引用
urlname:String类型,指定要发送请求的URL(统一资源定位器)
urldata:Blob类型,指定发送给urlname参数指定的URL的参数
headers:String类型,指定HTML首部。对Netscape浏览器来说,每个HTTP首部之后需要个换行符(~n),在所有首部之后再跟一个换行符(~n)
data:InternetResult实例变量,用于保存返回的HTML
返回值
Integer。函数执行成功时返回1,发生错误时返回下述值:
-1一般错误
-2指定的URL无效
-4不能连接到Internet上
-6Internet请求无效
用法
该函数的data参数要求是继承了InternetResult对象的类用户对象实例,在该用户对象的定义中,需要定义覆盖函数InternetData(),用于处理Internet返回的HTML数据。由于Internet以异步方式传送数据,因此,data参数必须是某个实例变量或全局变量的引用(例如窗口级实例变量)。
示例 下面的代码调用PostURL()。其中,Iinet_base是个Inet类型的实例变量;n_ir_msgbox是继承了InternetResult对象的类用户对象,iir_msgbox是该用户对象的一个实例:
Blob lblb_args
String ls_headers
String ls_url
Long ll_length
ir_msgbox = CREATE n_ir_msgbox
ls_url = "http://coltrane.sybase.com/"
ls_url += "cgi-bin/pbcgi60.exe/"
ls_url += "myapp/n_cst_html/f_test?"
lblb_args = blob("")
ll_length = Len(lblb_args)
ls_headers = "Content-Length: " + String(ll_length) + "~n~n"
iinet_base.PostURL(ls_url, lblb_args, ls_headers, iir_msgbox)
yuanjinet 2003-11-26
  • 打赏
  • 举报
回复
楼上的大哥,变量如何定义,我定义了一个InternetResult变量好像不对(程序没提示出错)能详细说一下吗?最好能例子
insert2003 2003-11-26
  • 打赏
  • 举报
回复

这么多啊
UP一下

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧