以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  再次请教一个接口代码问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104729)

--  作者:huangxueyao
--  发布时间:2017/8/4 0:04:00
--  再次请教一个接口代码问题



问题:
蓝色部分是可以正常执行的,拼成一个string直接在浏览器提交都可以,成功返回数据,
红色部分出错了,不知道应该怎么写才对,里面的settings不是一个普通参数,而是一个数组了,请老师们指点迷津……
API说明文档在此:
https://www.youzanyun.com/apilist/detail/group_shop/multi_store/youzan.multistore.goods.delivery.update

两个参数:


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170804000822.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/8/4 0:10:25编辑过]

--  作者:huangxueyao
--  发布时间:2017/8/4 0:07:00
--  
Tables("库存同步").Filter="同步状态=\'等待同步\'"

For Each tr As Row In Tables("库存同步").Rows
    
    Dim st1 As String = ""
    
    st1 = "https://open.youzan.com/api/oauthentry/youzan.multistore.goods.sku/3.0.0/update?access_token="
    st1 = st1 & Vars("access_token")
    st1 = st1 & "&offline_id=" & tr("网点ID")
    st1 = st1 & "&num_iid=" & tr("商品ID")
    st1 = st1 & "&quantity=" & tr("门店库存")
    
    Dim hc1 As New HttpClient(st1)
    Dim jo1 As JObject = Jobject.Parse(hc1.GetData)

    If jo1("response")("is_success").ToString = "true" Then
        Dim st2 As String = ""
        
        st2 = "https://open.youzan.com/api/oauthentry/youzan.multistore.goods.delivery/3.0.0/update?access_token="
        st2 = st2 & Vars("access_token")

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170804000658.png
图片点击可在新窗口打开查看

        st2 = st2 & "&offline_id=" & tr("网点ID")
        
        Dim hc2 As New HttpClient(st2)
        Dim jo2 As JObject = Jobject.Parse(hc2.GetData)
Output.show(st2)
        If jo2("response")("is_success").ToString = "true" Then
            tr("同步状态") = "成功同步到线上[" & Date.Now & "]"
        Else
            tr("同步状态") = "同步失败!"
        End If
        
    Else
        tr("同步状态") = "同步失败!"
    End If
    
    
    
Next
[此贴子已经被作者于2017/8/4 0:09:15编辑过]

--  作者:有点甜
--  发布时间:2017/8/4 8:54:00
--  

最后写,用生成的st2直接在浏览器里访问,看得到什么结果。


st2 = UrlEncode(st2)

st2 = st2.Replace("%3a", ":").Replace("%2f", "/")
msgbox(st2)

[此贴子已经被作者于2017/8/4 9:18:41编辑过]

--  作者:huangxueyao
--  发布时间:2017/8/4 9:09:00
--  
出现编译错误,没有为Public Function Str(Number As Object) As String的参数Number指定参数

st2 = str.Replace("%3a", ":").Replace("%2f", "/")

--  作者:有点甜
--  发布时间:2017/8/4 9:18:00
--  
st2 = UrlEncode(st2)

st2 = st2.Replace("%3a", ":").Replace("%2f", "/")
msgbox(st2)


--  作者:huangxueyao
--  发布时间:2017/8/4 9:36:00
--  
{ "error_response": { "code": 50012, "msg": "api dose not exist" } }

得到这个,应该是识别不了?

--  作者:huangxueyao
--  发布时间:2017/8/4 9:37:00
--  
我看了教程,是不是要用什么Json进行post提交之类的?
--  作者:有点甜
--  发布时间:2017/8/4 9:43:00
--  

这样处理下吧,之前的代码不要写了

 

st2 = st2 & "&settings=" & UrlEncode("你特殊的字符串")

 

最后,贴出你得到的字符串看看。

 

 


--  作者:huangxueyao
--  发布时间:2017/8/4 9:55:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170804095102.png
图片点击可在新窗口打开查看
--  作者:huangxueyao
--  发布时间:2017/8/4 9:56:00
--  
论坛直接回复不了啊
加代码框也不行

浏览器提交后:
{"error_response":{"code":50000,"msg":"\\u53c2\\u6570\\u9519\\u8bef\\uff01"}}