Foxtable(狐表)用户栏目专家坐堂 → 求助:微信POST提交查询反馈JSON数据操作


  共有2502人关注过本帖树形打印复制链接

主题:求助:微信POST提交查询反馈JSON数据操作

帅哥哟,离线,有人找我吗?
李孝春
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
求助:微信POST提交查询反馈JSON数据操作  发帖心情 Post By:2016/10/9 20:06:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:微信管理.foxdb


根据前辈微信公众号菜单操作实例代码
定义:内部HTTPPOST函数

'定义POST函数
Dim url As String = Args(0) 'post的接口地址
Dim postStream As System.IO.Stream = Args(1) '向接口POST的数据流
Dim encoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8")'编码格式

Dim sresult As String
Dim request As System.Net.HttpWebRequest = DirectCast(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
request.Method = "POST"
request.Timeout = Vars("TimeOut")
'设置标头
request.C
request.ContentLength = IIf(Not postStream Is Nothing, postStream.Length, 0)
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
request.KeepAlive = True
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36"

'向接口POST数据
If (Not postStream Is Nothing) Then
    postStream.Position = 0
    Dim requestStream As System.IO.Stream = request.GetRequestStream 
    Dim buffer4 As Byte() = New Byte(&H400 - 1) {} 
    Dim num3 As Integer = postStream.Read(buffer4, 0, buffer4.Length) 
    Do While (num3 <> 0) 
        requestStream.Write(buffer4, 0, num3) 
        num3 = postStream.Read(buffer4, 0, buffer4.Length) 
    Loop 
    postStream.Close() 
End If 

'获取接口的返回值
Dim response As System.Net.HttpWebResponse = DirectCast(request.GetResponse, System.Net.HttpWebResponse) 
Using stream3 As System.IO.Stream = response.GetResponseStream 
Using reader As System.IO.StreamReader = New System.IO.StreamReader(stream3, encoding) 
sresult = reader.ReadToEnd 
End Using 
End Using 
Return sresult


调用内部HttpPost函数,实现POST提交数据修改菜单
If MessageBox.Show("提交后会覆盖原有的菜单,确定要提交?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then    
    Dim menujsonstring As String = Functions.Execute("GetMenuJson") ' 获取菜单Json
    Dim accesstoken = Functions.Execute("GetAccessToken") '获取AccessToken
    '定义接口url
    Dim url = String.Format("https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}", accesstoken.access_token)
    '把菜单Json序列化到内存流
    Using ms As New System.IO.MemoryStream()
    Dim bytes = ConvertHelper.EncodingToBytes(menujsonstring, System.Text.Encoding.UTF8)
    ms.Write(bytes, 0, bytes.Length)
    ms.Seek(0, System.IO.SeekOrigin.Begin)
    Dim jsonString = Functions.Execute("HttpPost",url, ms) '通过POST向接口传输菜单数据,并取得返回结果
    Dim mresult = ConvertHelper.FromJson(Of MmsgResult)(jsonString)
    If mresult.errcode = ReturnCode.请求成功 Then
        Functions.Execute("LogText","成功创建菜单!")
        msgbox("成功创建菜单!")
    Else
        Functions.Execute("LogText","创建菜单失败!错误代码: " & mresult.errcode & ";错误原因:" & mresult.errmsg)
        msgbox("创建菜单失败!错误代码: " & mresult.errcode & ";错误原因:" & mresult.errmsg)
    End If
End Using
End If
接口名称最大时间跨度接口调用地址(必须使用https)
获取图文群发每日数据(getarticlesummary)1https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN

接口调用请求说明

接口分析数据接口(包括接口列表中的所有接口)需要向相应接口调用地址POST以下示例数据包:

{

    "begin_date": "2014-12-07",

    "end_date": "2014-12-07"

}

调用参数说明


想对应修改到获取图文群发每日数据,怎么操作呢?烦请各位大大指导下!谢谢


下面是仿写  结果总报错  烦请指导 谢谢
Dim xmlhttp= CreateObject("msxml2.xmlhttp")
With xmlhttp
.open ("POST", "https://api.weixin.qq.com/datacube/getarticlesummary?access_token=ACCESS_TOKEN", False)
.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded")
.send ("&"begin_date": "2014-12-07","end_date": "2014-12-07"")
MsgBox .responseText '显示POST之后网页返回的结果
End With
Set xmlhttp = Nothing
[此贴子已经被作者于2016/10/9 21:40:42编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107751 积分:548094 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/10 9:15:00 [只看该作者]

AfterOpenProject设置好自己的AppId和AppSecret 

Dim postdata As String = "{ ""begin_date"": ""2014-12-07"",    ""end_date"": ""2014-12-07""}"
Dim accesstoken = Functions.Execute("GetAccessToken") '获取AccessToken
    '定义接口url
Dim url = String.Format("https://api.weixin.qq.com/datacube/getarticlesummary?access_token={0}", accesstoken.access_token)

Using ms As New System.IO.MemoryStream()
    Dim bytes = ConvertHelper.EncodingToBytes(postdata, System.Text.Encoding.UTF8)
    ms.Write(bytes, 0, bytes.Length)
    ms.Seek(0, System.IO.SeekOrigin.Begin)
    Dim jsonString = Functions.Execute("HttpPost",url, ms) '通过POST向接口传输菜单数据,并取得返回结果
    msgbox(jsonString )
End Using


 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)在AfterOpenProject设置好自己的AppI...  发帖心情 Post By:2016/10/10 18:49:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:捕获111.png
图片点击可在新窗口打开查看

输入这个结果  没有数据

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107751 积分:548094 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/10 20:00:00 [只看该作者]

有返回结果,说明接口调用是成功的。

只有为什么没有数据,要问腾讯了。也许这个时间段,确实没有统计数据

 回到顶部
帅哥哟,离线,有人找我吗?
李孝春
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)有返回结果,说明接口调用是成功的。...  发帖心情 Post By:2016/10/10 20:52:00 [只看该作者]

嗯  我试一试获取其他的信息 可以获取到  我再排查一下  谢谢你先

 回到顶部