借用了坛友帖子的思路。有道云笔记永久直链解析主要是想学习一下技术并看看原理,原来并不复杂。
主要可以用于软件分发,版本更新。相当于一个免费的服务器吧,再使用短地址来生成一下短地址,那是非常完美了。
1.有道云笔记分享地址:https://note.youdao.com/s/cusiy8WX
2.使用本工具解析的地址:http://note.youdao.com/yws/api/personal/file/WEBfb1d035ffc78cb76efe912ac254fcb0b?method=download&inline=true&shareKey=bc6ee9ebf60cba8c2bd793ad30dec7f1
3.使用新浪短网址生成的地址:https://dwz.win/a6ZP
新浪短网址 可以在这个地址生成:新浪短网址 短网址生成 网址缩短服务 - 短网址 (sina.lt)
觉着不错可以给个免费的评分,谢谢。
工具在这个文件夹下,自己也可以编译。
[Visual Basic .NET]
Public Class Form1
Private Sub DownText(strUrl As String)
Dim csStopwatch As New Stopwatch
strUrl = GetHttpResutl(strUrl)
Dim strPattern As String = "id=(.*?)&type="
Dim match As Match = Regex.Match(strUrl, strPattern)
If (match.Success) Then
Dim strID As String = match.Groups(0).Value.Replace("id=", "").Replace("&type=", "")
strUrl = $"http://note.youdao.com/yws/public/note/{strID}?editorType=0&cstk=cGtjFpHb"
Dim jsonResult As String = GetHttpResutl(strUrl, False)
Dim csRootobject As Rootobject = Newtonsoft.Json.JsonConvert.DeserializeObject(Of Rootobject)(jsonResult)
Dim strP As String = csRootobject.p.Replace("/", "")
TextBox2.Text = $"http://note.youdao.com/yws/api/personal/file/{strP}?method=download&inline=true&shareKey={strID}"
Else
MsgBox("分享链接无法解析", MsgBoxStyle.OkOnly, "提示")
End If
csStopwatch.Stop()
End Sub
Private Function GetHttpResutl(strUrl As String, Optional ByVal bolUrl As Boolean = True) As String
Using httpClient As New HttpClient()
Try
' 发起 GET 请求
Dim response As HttpResponseMessage = httpClient.GetAsync(strUrl).Result
' 确保请求成功
response.EnsureSuccessStatusCode()
' 读取 JSON 数据
If bolUrl Then
Return response.RequestMessage.RequestUri.ToString
Else
Return response.Content.ReadAsStringAsync().Result
End If
Catch ex As HttpRequestException
MsgBox($"发生 HTTP 请求错误: {ex.Message}", MsgBoxStyle.OkOnly, "提示")
Return ""
End Try
End Using
End Function
Private Sub Btn_JX_Click(sender As Object, e As EventArgs) Handles Btn_JX.Click
TextBox2.Text = String.Empty
DownText(txt_Url.Text)
End Sub
End Class
Public Class Rootobject
Public Property p As String
Public Property ct As Integer
Public Property su As Object
Public Property pr As Integer
Public Property au As Object
Public Property pv As Integer
Public Property mt As Integer
Public Property sz As Integer
Public Property domain As Integer
Public Property tl As String
Public Property isFinanceNote As Boolean
End Class
一起进步,瑞思拜。