抗击新冠,紧急求救,PB调用API获取手机号所在地

fcydj1984 2020-01-27 07:18:05
很多患者来源时并不说自己时武汉的,直到确诊才承认,近期一直导致几十名医生护士被隔离。为提醒同事对武汉患者重点关注,想做一个查手机号归属的接口。

http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=15375284321

这个地址可以调通,但是我用Pb+HTTP方式调用提示

<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Forbidden</p>
<p>The server understood the request, but is refusing to fulfill it</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4">here</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>

调用方法

String ls_ret
Integer li_ret
Long ll_len
Blob lbob_data
String ls_header,gs_url,resultdata
long gl_port
string ls_result
integer li_rc
string ls_url
gs_url = "http://mobsec-dianhua.baidu.com/dianhua_api/open/location?"
gl_port=80

inet linet_main
n_cst_internet luo_data // internetresult的实例

linet_main = CREATE inet
luo_data = CREATE n_cst_internet
//创建ole对象
OleObject ioo_com
ioo_com = Create OleObject
li_ret = ioo_com.ConnectToNewObject("PB115.n_unf8togbk")
If li_ret <> 0 Then
Destroy ioo_com
End if

String as_data,as_Err


as_data = "tel=" +'15375284208'

//as_data += "s01" + "&"
//as_data += "ACCESS_TOKEN=" + as_text


li_rc = GetContextService('internet',linet_main)
if li_rc<>1 then
as_Err='创建Internet服务失败'
End IF
//messagebox('GetContextService',string(li_rc))
If li_rc = 1 Then
//lbob_data = ioo_com.uf_gbktoutf8(as_data) //Blob(as_data)
lbob_data = Blob(as_data,EncodingUTF8!)
ll_len = Len(lbob_data)

//每个头key和value之间用冒号分隔,每对头之间空格分隔,头信息之后两个换行
ls_header = "Content-Type:application/x-www-form-urlencoded~n"
ls_header += "Content-Length:" + String(ll_len) + "~n~n"


li_rc = linet_main.PostURL(gs_url, lbob_data,ls_header,gl_port,luo_data)
//messagebox('PostURL',string(li_rc))
If li_ret <> 1 Then
ls_ret = "-1"
//Goto Process_end
End If
ls_ret = luo_data.is_data
End If

String ls_ret1
//ls_ret1 = ioo_com.uf_utf8togbk(luo_data.iblob_data)
//mle_1.Text = luo_data.is_data
if li_rc <1 then messagebox('发生错误',string(li_rc))
SetPointer(Arrow!)
//messagebox('',string(luo_data.is_data))

//messagebox('',string(li_rc))
string ls_text
long ll_return
resultdata = luo_data.is_data
ll_return=pos(resultdata,':')
ls_text=right(resultdata,len(resultdata)-ll_return -1)
ll_return=pos(ls_text,'"')
ls_text=left(ls_text,ll_return -1)
//mle_1.text=ls_text

Destroy ioo_com
//Process_end:
Destroy luo_data
Destroy linet_main

//mle_1.Text = mle_1.Text + '~r~n' + ls_ret
return 0


直接run网页呢,就提示下载josn

跪求解决。
...全文
928 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯芺 2020-02-18
  • 打赏
  • 举报
回复
引用 5 楼 fcydj1984 的回复:
[quote=引用 2 楼 柯芺的回复:]//自定义函数:f_telephonehome(电话号码)
//传入参数:as_Phone

string ls_url,ls_Web
n_internetresult n_ir
inet inet_base

inet_base = Create inet
n_ir = CREATE n_internetresult

ls_url = 'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=' + as_Phone

inet_base.GetURL(ls_url,n_ir)

ls_Web = n_ir.is_data
ls_Web = mid(ls_Web,POS(ls_Web,'"location":"') + 12,len(ls_Web))
ls_Web = mid(ls_Web,1,POS(ls_Web,'"') - 1)

return ls_Web

结贴给分吧,呵呵:)

当天已经有人指点解决了,感谢您,但是不能给分。[/quote]

还是应该结贴的:)
fcydj1984 2020-02-16
  • 打赏
  • 举报
回复
引用 2 楼 柯芺的回复:
//自定义函数:f_telephonehome(电话号码)
//传入参数:as_Phone

string ls_url,ls_Web
n_internetresult n_ir
inet inet_base

inet_base = Create inet
n_ir = CREATE n_internetresult

ls_url = 'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=' + as_Phone

inet_base.GetURL(ls_url,n_ir)

ls_Web = n_ir.is_data
ls_Web = mid(ls_Web,POS(ls_Web,'"location":"') + 12,len(ls_Web))
ls_Web = mid(ls_Web,1,POS(ls_Web,'"') - 1)

return ls_Web

结贴给分吧,呵呵:)
当天已经有人指点解决了,感谢您,但是不能给分。
fcydj1984 2020-02-16
  • 打赏
  • 举报
回复
引用 3 楼 qj_198127的回复:
现在手机归属地已经没有意义,必须采用大数据跟踪
呵呵哒,你觉得医院能轻易获得患者的大数据?一个省的大数据中心都获取不到完整的信息用于分析,你指望一个医院能有?妄谈大数据的不是蠢就是蠢。
qj_198127 2020-02-16
  • 打赏
  • 举报
回复
现在手机归属地已经没有意义,必须采用大数据跟踪
柯芺 2020-02-11
  • 打赏
  • 举报
回复
//自定义函数:f_telephonehome(电话号码)
//传入参数:as_Phone

string ls_url,ls_Web
n_internetresult n_ir
inet inet_base

inet_base = Create inet
n_ir = CREATE n_internetresult

ls_url = 'http://mobsec-dianhua.baidu.com/dianhua_api/open/location?tel=' + as_Phone

inet_base.GetURL(ls_url,n_ir)

ls_Web = n_ir.is_data
ls_Web = mid(ls_Web,POS(ls_Web,'"location":"') + 12,len(ls_Web))
ls_Web = mid(ls_Web,1,POS(ls_Web,'"') - 1)

return ls_Web

结贴给分吧,呵呵:)
  • 打赏
  • 举报
回复
用pb调取提示什么错误?

680

社区成员

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

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