0

经过多年的业余编程(经典 ASP 12 年),我开始做更多的编程,结果是自学 .net。

我正在尝试使用 UrbanAirship 的 API 通过 Apple 的推送通知服务器 (APNS) 发送测试推送通知。我找到了这个示例代码,但很难实现它。

我收到错误:BC30188:预期声明。这是此特定行的代码:

req.Credentials = New NetworkCredential("username", "password")

这是我的整个代码:

pushvb.aspx

<%@ Page Language="VB" AutoEventWireup="false" src="pushvb_bg.aspx.vb" Inherits="UrbanAirship.uacode" %>

<% Response.write(UrbanAirship.uacode.testing) %>

pushvb_bg.aspx.vb

Imports System   
Imports System.Net  
Imports System.Text  
Imports System.IO  
Imports System.WinForms  

Namespace UrbanAirship  
public partial Class uacode  
    Inherits System.Web.UI.Page  
    Public Const testing As String = "testing..."  
    Dim req As WebRequest = WebRequest.Create("https://go.urbanairship.com/api/push/")  
    Dim postData As String = "{""aps"": {""badge"": ""+1"", ""alert"": ""pushvb"",""sound"": ""default"",""device_tokens"": ""token""}}"  
    req.Credentials = New NetworkCredential("username", "password")  
    req.Method = "POST"  
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)  
    req.ContentType = "application/json"  
    req.ContentLength = byteArray.Length  
    Dim dataStream As Stream = req.GetRequestStream()  
    dataStream.Write(byteArray, 0, byteArray.Length)  
    dataStream.Close()  
    Dim resp As WebResponse = req.GetResponse() 
    dataStream = resp.GetResponseStream()  
    Dim reader As New StreamReader(dataStream)  
    Dim responseFromServer As String = reader.ReadToEnd()  
    Console.WriteLine(responseFromServer)  
    reader.Close()  
    dataStream.Close()  
    req.Close()  
end Class  
end Namespace  

任何帮助将不胜感激。非常感谢您花时间查看。

4

1 回答 1

2

嗯……答案很简单。在方法之外,只允许声明。您需要在您的类中创建一个由您调用的方法,或者是例如页面加载事件。

带有 dim 和 new 的行被接受为声明,Public Const 也是一个声明。

该行req.Credentials = New NetworkCredential("username", "password")是代码中的第一行,它不是声明,而是赋值,因此它会显示在错误窗口中。

于 2011-11-09T15:38:22.817 回答