帖子
帖子
用户
博客
课程
12
返回列表 发新帖
19
帖子
0
勋章
485
Y币

额,加这函数后报错{ "code": 0, "status": 0, "msg": "message title invalid" }
5
帖子
0
勋章
75
Y币
xinkelck 发表于 2014-12-15 16:25
额,加这函数后报错{ "code": 0, "status": 0, "msg": "message title invalid" }
  1. request.ContentType = "application/x-www-form-urlencoded";
复制代码

加上这个,认真看帖子。
19
帖子
0
勋章
485
Y币
阿虎 发表于 2014-12-16 14:51
加上这个,认真看帖子。

这个肯定加了啊,没用!
byte[] postData = Encoding.UTF8.GetBytes(formData);
            request.ContentLength = postData.Length;

            using (Stream reqStream = request.GetRequestStream())
            {
                //StreamWriter reqWriter = new StreamWriter(reqStream);
                reqStream.Write(postData, 0, postData.Length);
我给加了ContentLength就OK了
13
帖子
0
勋章
178
Y币
阿虎 发表于 2014-11-27 13:01
已解决,谢谢!

你好,你的问题怎么处理的,能留下一个解决的方法么,我也遇到此问题!
13
帖子
0
勋章
178
Y币
我也解决了,我的原因是:提交前的字符串不是标准的 json格式,导致服务器不识别!
0
帖子
0
勋章
18
Y币
为啥社区的收藏找不到呢
0
帖子
0
勋章
18
Y币
**.** 经过整理,加入了不同情况下灵活处理的写法

Public Class Class1
        Public Sub New()
                '参考:如果发送服务器接受字符识别有问题,可参考
                Dim myEncoding As Encoding = Encoding.GetEncoding("utf8")
                Dim param As String = HttpUtility.UrlEncode("参数一", myEncoding) & "=" & HttpUtility.UrlEncode("值一", myEncoding) & "&" & HttpUtility.UrlEncode("参数二", myEncoding) & "=" & HttpUtility.UrlEncode("值二", myEncoding)
                'POST 中文数据的时候,先使用 UrlEncode 方法将中文字符转换为编码后的 ASCII 码,然后提交到服务器,提交的时候可以说明编码的方式,用来使对方服务器能够正确的解析。

                Dim AppId As String = "********"
                Dim AppKey As String = "***********"
                Dim formData As String = [String].Format("title={0}&content={1}&type={2}&timer={3}&platform={4}&groupName={5}", "MsgTitleForServer", "MsgContentForServer", 1, 0, 2, _
                        "全部分组")
                Dim url As String = [String].Format("https://p.apicloud.com/api/push/message")
                Dim request As HttpWebRequest = TryCast(HttpWebRequest.Create(url), HttpWebRequest)
                request.Method = "POST"
                request.Headers.Add("X-APICloud-AppId", AppId)
                request.Headers.Add("X-APICloud-AppKey", GetSHA1Key(AppId, AppKey))
                request.ContentType = "application/x-www-form-urlencoded"
                'request.ContentType = "application/x-www-form-urlencoded;charset=utf8";

                '根据实际情况看是否添加ASCII或utf8转换,如果使用写法1里面的formData需要改成bs
                'byte[] bs = Encoding.ASCII.GetBytes(formData);
                Dim bs As Byte() = Encoding.UTF8.GetBytes(formData)
                request.ContentLength = bs.Length

                '处理的写法1(阿虎):
                Using reqStream As Stream = request.GetRequestStream()
                        Dim reqWriter As New StreamWriter(reqStream)
                        reqWriter.Write(formData)
                        Using response = TryCast(request.GetResponse(), HttpWebResponse)
                                Using respSream As Stream = response.GetResponseStream()
                                        Dim respReader As New StreamReader(respSream)
                                        Dim result As String = respReader.ReadToEnd()
                                        Console.WriteLine(result)
                                End Using
                        End Using
                End Using

                '处理的写法2(参考学习的):
                Using reqStream As Stream = req.GetRequestStream()
                        reqStream.Write(bs, 0, bs.Length)
                End Using
                                '在这里对接收到的页面内容进行处理
                Using wr As WebResponse = req.GetResponse()


                End Using
        End Sub

        Private Shared Function GetSHA1Key(AppId As [String], AppKey As [String]) As [String]

                Dim longTime As Long = CLng((DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds)
                Dim value As [String] = [String].Format("{0}UZ{1}UZ{2}", AppId, AppKey, longTime)
                Dim buffer As Byte() = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(value))
                Dim builder As New StringBuilder()
                For Each num As Byte In buffer
                        builder.AppendFormat("{0:x2}", num)
                Next
                Return builder.ToString() & "." & longTime
        End Function


End Class
3
帖子
0
勋章
45
Y币
感谢,我用 C#,遇到一样的问题,关键时候得到你的帮助!
20
帖子
0
勋章
152
Y币
楼主可以帮我看看帖子吗?问题和你一样,但是无法解决...
https://community.apicloud.com/b ... id=13183&extra=
4
帖子
0
勋章
35
Y币
最后您的问题怎么解决的?
12
您需要登录后才可以回帖 登录

本版积分规则