Foxtable(狐表)用户栏目专家坐堂 → 短信接口中请在request请求中附带登出后的cookies使用,这是什么意思?


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

主题:短信接口中请在request请求中附带登出后的cookies使用,这是什么意思?

帅哥哟,离线,有人找我吗?
ycwk
  31楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/8/5 22:34:00 [只看该作者]

没太看懂老师和贴子上说的意思,能否给个delete的代码?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  32楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/6 0:04:00 [只看该作者]

参考,细节自己修改,如果还有问题,(请,叫,对,方,直接给出完整的可以正常直接执行的c#的代码)

 

 

Dim msg As String = "user=yc_yy&salt=123" '输入请求传参数
Dim req As System.Net.HttpWebRequest = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req.Method = "POST"
req.ContentType = "application/x-www-form-urlencoded"
req.ContentLength = msg.Length
Dim cookieCon As new System.Net.CookieContainer()
req.CookieContainer = cookieCon

Dim pos As System.Net.WebResponse = req.GetResponse()
Dim cookieheader As String = req.CookieContainer.GetCookieHeader(new Uri("http://10.10.10.10:10/"))
msgbox(cookieheader )

req = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req.Method = "DELETE"
cookieCon = new System.Net.CookieContainer()
req.CookieContainer = cookieCon
req.CookieContainer.SetCookies(new Uri("http://10.10.10.10:10/"), cookieheader)

 

[此贴子已经被作者于2018/8/6 0:05:01编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/8/6 8:00:00 [只看该作者]

自己试了一下,还是不行,把别人的demo要来了,在下面,请老师帮忙提供一下代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:发短信.rar


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  34楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/6 9:20:00 [只看该作者]

Dim user As String = "yc_yy"
Dim salt As String = "123"
Dim str_temp As String = "cqq7@XfW1K4W" & salt
Dim auth = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str_temp,"MD5").ToUpper
Dim msg As String = "user=" & user & "&salt=" & salt & "&auth=" & auth '输入请求传参数
msgbox(msg)
Dim req As System.Net.HttpWebRequest = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req.Method = "POST"
req.timeout = 5000
req.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
req.ContentLength = msg.Length
Dim cookieCon As new System.Net.CookieContainer()
req.CookieContainer = cookieCon
Dim postBytes() As Byte = Encoding.UTF8.GetBytes(msg)
Dim requestStream As Object = req.GetRequestStream()
requestStream.Write(postBytes, 0, postBytes.Length)
requestStream.Close()
Dim pos As System.Net.WebResponse = req.GetResponse()
Dim cookieheader As String = req.CookieContainer.GetCookieHeader(new Uri("http://10.10.10.10:10/"))
Dim mycookie = req.CookieContainer
msgbox(cookieheader )
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm,encoding.utf8)
Dim str As String = reader.ReadToEnd
stm.Dispose()
msgbox(str)

Dim req2 = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req2.Method = "DELETE"
req2.timeout = 5000
req2.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
req2.CookieContainer = mycookie
Dim pos2 As System.Net.WebResponse = req2.GetResponse()
Dim stm2 As System.IO.Stream = pos2.GetResponseStream()
Dim reader2 As New System.IO.StreamReader(stm2,encoding.utf8)
Dim str2 As String = reader2.ReadToEnd
stm2.Dispose()
msgbox(str2)


 


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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/8/6 17:12:00 [只看该作者]

按照上面的代码确实OK了,就是还有个get方法,不知道怎么写? 尝试了一下,不对


'以下为GET方法    '为了查回执
Dim req4 = System.Net.WebRequest.Create("http://10.10.10.10:10/message/taskid/<41d6da1fb6c586cf1a62d21007846>")
req4.Method = "GET"
req4.timeout = 5000
req4.C
req4.CookieContainer = mycookie
Dim pos4 As System.Net.WebResponse = req4.GetResponse()
Dim stm4 As System.IO.Stream = pos4.GetResponseStream()
Dim reader4 As New System.IO.StreamReader(stm4,encoding.utf8)
Dim str4 As String = reader4.ReadToEnd
stm4.Dispose()
msgbox(str4)


GET

需首先登陆,并在request请求中附带登陆后的cookies使用。

调用GET方法查询某个taskid对应短信的上行回复短信,无需额外参数,但url中需包含taskid信息。实际调用url为:

http://10.10.10.10:10/message/taskid/<taskid>

返回json内容为一个数组,其中每一个数组为一个字典,包含sourcetermidcontentreceivedtime三个字段。

sourcetermid为发送方号码。

content为短信内容,按照utf-8编码

receivedtime为短信接收时间。




 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  36楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/6 18:05:00 [只看该作者]

1、执行下面代码,把mycookie变量保存起来

 

Dim user As String = "yc_yy"
Dim salt As String = "123"
Dim str_temp As String = "cqq7@XfW1K4W" & salt
Dim auth = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str_temp,"MD5").ToUpper
Dim msg As String = "user=" & user & "&salt=" & salt & "&auth=" & auth '输入请求传参数
msgbox(msg)
Dim req As System.Net.HttpWebRequest = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req.Method = "POST"
req.timeout = 5000
req.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
req.ContentLength = msg.Length
Dim cookieCon As new System.Net.CookieContainer()
req.CookieContainer = cookieCon
Dim postBytes() As Byte = Encoding.UTF8.GetBytes(msg)
Dim requestStream As Object = req.GetRequestStream()
requestStream.Write(postBytes, 0, postBytes.Length)
requestStream.Close()
Dim pos As System.Net.WebResponse = req.GetResponse()
Dim cookieheader As String = req.CookieContainer.GetCookieHeader(new Uri("http://10.10.10.10:10/"))
Dim mycookie = req.CookieContainer
msgbox(cookieheader )
Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm,encoding.utf8)
Dim str As String = reader.ReadToEnd
stm.Dispose()
msgbox(str)

vars("mycookie") = mycookie

 

2、需要调用参考

 

Dim req2 = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req2.Method = "DELETE"
req2.timeout = 5000
req2.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
req2.CookieContainer = vars("mycookie")
Dim pos2 As System.Net.WebResponse = req2.GetResponse()
Dim stm2 As System.IO.Stream = pos2.GetResponseStream()
Dim reader2 As New System.IO.StreamReader(stm2,encoding.utf8)
Dim str2 As String = reader2.ReadToEnd
stm2.Dispose()
msgbox(str2)

 

 

 


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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/8/6 18:12:00 [只看该作者]

返回的result 是UTF-8的编码?  如何还原成中文啊?


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

[此贴子已经被作者于2018/8/6 18:26:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  38楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/6 18:16:00 [只看该作者]

替换红色的代码

 

Dim req2 = System.Net.WebRequest.Create("http://10.10.10.10:10/session")
req2.Method = "DELETE"
req2.timeout = 5000
req2.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"
req2.CookieContainer = vars("mycookie")
Dim pos2 As System.Net.WebResponse = req2.GetResponse()
Dim stm2 As System.IO.Stream = pos2.GetResponseStream()
Dim reader2 As New System.IO.StreamReader(stm2,encoding.utf8)
Dim str2 As String = reader2.ReadToEnd
stm2.Dispose()
msgbox(str2)


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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/8/6 18:27:00 [只看该作者]

谢谢老师,上面的代码已经OK了,问题是返回的result的值是 UTF-8编码,如何还原成中文?


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2018/8/6 18:42:10编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By:2018/8/6 20:13:00 [只看该作者]

搞定了,是unicode编码

 回到顶部
总数 41 上一页 1 2 3 4 5 下一页