我写了一个BLOG 的TrackBack类,但是有问题

【后退】
楼主     发布时间:2006-9-27 19:31:59  点击:79次

作者:过客
    我写了一个BLOG 的TrackBack类,但是有问题

Imports System
Imports System.IO
Imports System.Web
Imports System.Net
Imports System.Data
Imports System.Text
Imports System.Data.OleDb
Imports Microsoft.VisualBasic

Public Class Trackback
    Inherits System.Web.UI.Page
    Private OkMsg As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & Microsoft.VisualBasic.Chr(10) & "" + "<response>" & Microsoft.VisualBasic.Chr(10) & "" + "<error>0</error>" & Microsoft.VisualBasic.Chr(10) & "" + "</response>" & Microsoft.VisualBasic.Chr(10) & ""
    Private PreErrorMsg As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & Microsoft.VisualBasic.Chr(10) & "" + "<response>" & Microsoft.VisualBasic.Chr(10) & "" + "<error>1</error>" & Microsoft.VisualBasic.Chr(10) & "" + "<message>"
    Private PostErrorMsg As String = "</message>" & Microsoft.VisualBasic.Chr(10) & "" + "</response>" & Microsoft.VisualBasic.Chr(10) & ""

    Public Sub page_load(ByVal s As Object, ByVal e As EventArgs)
        Dim parentId As Integer = 0
        Try
            parentId = Request.QueryString("id")
        Catch ex As Exception
            parentId = -1
        End Try
        If parentId >= 0 Then
            Response.Write(ProcessPing(Page.Request, parentId))
            Page.Response.ContentType = "text/xml"
        End If
    End Sub
    Private Function RespondMsg(ByVal msg As String) As String
        If msg Is Nothing Then
            Return OkMsg
        Else
            Return PreErrorMsg + msg + PostErrorMsg
        End If
    End Function

    Public Function ProcessPing(ByVal request As HttpRequest, ByVal parentId As Integer) As String
        If request Is Nothing OrElse parentId < 0 Then
            Return RespondMsg("Invalid blog item referred.")
        End If
        If Not request.HttpMethod.Equals("POST") Then
            Return RespondMsg("Request MUST submitted in POST method.")
        End If
        Dim title As String = request.Form("title")
        Dim url As String = request.Form("url")
        Dim excerpt As String = request.Form("excerpt")
        Dim blog_name As String = request.Form("blog_name")
        Dim ip As String = request.UserHostAddress
        If url Is Nothing OrElse url.Length = 0 Then
            Return RespondMsg("The ""url"" not specified in the POST request.")
        End If
        Dim strconn As String = "provider=microsoft.jet.oledb.4.0;data source=" & Server.MapPath("blogdatabase/$@--88jkblog##llnh.mdb")
        Dim conn As New OleDbConnection(strconn)
        Dim cmd As New OleDbCommand("select count(*) as total from BlogArticle", conn)
        conn.Open()
        Dim dr As OleDbDataReader = cmd.ExecuteReader
        If dr("total") <= 0 Then
            Return RespondMsg("Invalid blog item referred.")
        End If
        dr.Close()
        conn.Close()
        Dim sql As String = "insert into trackback(articleid,title,url,excerpt,blog_name,date,ip) values('" & parentId & "','" & title & "','" & url & "','" & excerpt & "','" & blog_name & "','" & Now() & "','" & request.UserHostAddress & "')"
        cmd = New OleDbCommand(sql, conn)
        conn.Open()
        Try
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            Return RespondMsg("发生错误")
        End Try
        conn.Close()
        Return RespondMsg(Nothing)
    End Function

    Public Sub SendPing(ByVal targetUrl As String, ByVal url As String, ByVal blog_name As String, ByVal title As String, ByVal excerpt As String)
        Dim post As HttpWebRequest = CType(WebRequest.Create(targetUrl), HttpWebRequest)
        post.Method = "POST"
        post.ContentType = "application/x-www-form-urlencoded; charset=utf-8"
        Dim postData As String = ""
        If Not (url Is Nothing) Then
            postData += "url=" + HttpUtility.UrlEncode(url)
        End If
        If Not (blog_name Is Nothing) Then
            postData += "&blog_name=" + HttpUtility.UrlEncode(blog_name)
        End If
        If Not (title Is Nothing) Then
            postData += "&title=" + HttpUtility.UrlEncode(title)
        End If
        If Not (excerpt Is Nothing) Then
            postData += "&excerpt=" + HttpUtility.UrlEncode(excerpt)
        End If
        Dim buff As Byte() = Encoding.UTF8.GetBytes(postData)
        post.ContentLength = buff.Length
        Dim stream As Stream = post.GetRequestStream
        stream.Write(buff, 0, buff.Length)
        stream.Close()
        post.BeginGetResponse(Nothing, Nothing)
    End Sub
End Class

第1楼     发布时间:2006-9-27 19:32:38  点击:次

作者:过客
    re:我写了一个BLOG 的TrackBack类,但是有问题

大家帮我看看是怎么回事?

第2楼     发布时间:2006-9-27 21:15:27  点击:次

作者:jjshang
发表: 211篇
回复: 14973篇
QQ: 
    re:我写了一个BLOG 的TrackBack类,但是有问题

你应该简单描述你的意图和出的错误,这样别人不知道帮你看什么?而且也很难看出错误?

第3楼     发布时间:2006-9-28 16:06:46  点击:次

作者:jbfly
发表: 110篇
回复: 251篇
QQ: 
    re:我写了一个BLOG 的TrackBack类,但是有问题

出什么错了?

第4楼     发布时间:2006-9-29 16:33:19  点击:次

作者:过客
    re:我写了一个BLOG 的TrackBack类,但是有问题

问题已经解决!

【后退】

知行网 www.zhixing123.cn