当前位置: 代码迷 >> PB >> pb用postURL的有关问题
  详细解决方案

pb用postURL的有关问题

热度:64   发布时间:2016-04-29 08:05:25.0
pb用postURL的问题
应用系统与NC对接,需要将生成的xml发送至NC信息交换平台。考虑用PB的postURL实现发现,但却总是报-6错误,用getURL返回正常,但因要把xml用流传送,所以不能用getURL,搜索了很多文档,说是只有支持cgi的网站才能用postURL,万一不支持cgi的怎么办呀!

我的主要代码如下:请大家给我看看是什么原因(pb9和pb11.5都试过了)

n_ir_msg iir_msgbox
n_inet iinet

iinet = CREATE n_inet
iir_msgbox = CREATE n_ir_msg

String ls_url,ls_header,ls_result
Blob lblb_args
int li_rc

lblb_args = blob("",EncodingUTF8!)ls_header = "Content-Type:" + "application/x-www-form-urlencoded~n" + "Content-Length:" + String( len(lblb_args) ) + "~n~n";

ls_url = sle_1.text 
li_rc = iinet.GetURL(ls_url, iir_msgbox); //--li_rc返回1
li_rc = iinet.PostURL(ls_url, lblb_args, ls_header, iir_msgbox); //--li_rc返回-6
ls_result = iir_msgbox.is_data 


destroy iinet
destroy iir_msgbox 


------解决方案--------------------
只要get的参数长度不超过限制,用get也是可以上传的。
------解决方案--------------------
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)


header区需要内容的
------解决方案--------------------
支持CGI, NSAPI, or ISAPI.