Lỗi Tải File Từ Internet

Liên hệ QC

quocphuoc88

Thành viên thường trực
Tham gia
29/11/10
Bài viết
299
Được thích
228
Nghề nghiệp
Kế toán - kiểm toán
Chào Anh/Chị !

Em có đoạn code bên dưới sưu tầm để tải File từ Dropbox, Tuy nhiên hôm nay nó bị dở chứng gì mà không cho tải được nữa, Status luôn là 400 (bad request). Em có tìm hiểu và chuyển sang CreateObject("WinHttp.WinHttpRequest.5.1") cũng cho kết quả tương tự không tải được. Mong Anh/chị giúp em ạ !
Em cảm ơn !

Mã:
Public Function DownFile(ByVal URL As String, _
                         ByVal path As String) As Boolean
Dim oHTTP As Object, Chk As Byte
    Set oHTTP = CreateObject("MSXML2.serverXMLHTTP.6.0")
    With oHTTP
        .Open "GET", URL, False
        .Send
        If .Status = 200 Then
            With CreateObject("ADODB.Stream")
                .Open
                .Type = 1
                .write oHTTP.responseBody
                .Position = 0
                .SaveToFile path, 2 ' 1 = no overwrite, 2 = overwrite
                .Close
            End With
        Else
            GoTo Err_
        End If
    End With
    Chk = 1
Err_:
    DownFile = (Chk = 1)
    Set oHTTP = Nothing
End Function
 
1/ Vào link này
PHP:
https://www.dropbox.com/s/jx76vb47j0vc3h0/GPAcc_Version.Txt
(dùng "MSXML2.serverXMLHTTP.6.0" cũng được).
lấy response headers['location'] được một URL đích của file (URL này nó sẽ thay đổi theo mỗi lần requests tới server).

2/ Dùng API URLDownloadToFile để tải file về từ URL vừa tìm được.
 
Upvote 0
1/ Vào link này
PHP:
https://www.dropbox.com/s/jx76vb47j0vc3h0/GPAcc_Version.Txt
(dùng "MSXML2.serverXMLHTTP.6.0" cũng được).
lấy response headers['location'] được một URL đích của file (URL này nó sẽ thay đổi theo mỗi lần requests tới server).

2/ Dùng API URLDownloadToFile để tải file về từ URL vừa tìm được.
.GetResponseHeader("Location") nó báo lỗi luôn bạn !
 
Upvote 0
Chào Anh/Chị !

Em có đoạn code bên dưới sưu tầm để tải File từ Dropbox, Tuy nhiên hôm nay nó bị dở chứng gì mà không cho tải được nữa, Status luôn là 400 (bad request). Em có tìm hiểu và chuyển sang CreateObject("WinHttp.WinHttpRequest.5.1") cũng cho kết quả tương tự không tải được. Mong Anh/chị giúp em ạ !
Em cảm ơn !


Mã:
Public Function DownFile(ByVal URL As String, _
                         ByVal path As String) As Boolean
Dim oHTTP As Object, Chk As Byte
    Set oHTTP = CreateObject("MSXML2.serverXMLHTTP.6.0")
    With oHTTP
        .Open "GET", URL, False
        .Send
        If .Status = 200 Then
            With CreateObject("ADODB.Stream")
                .Open
                .Type = 1
                .write oHTTP.responseBody
                .Position = 0
                .SaveToFile path, 2 ' 1 = no overwrite, 2 = overwrite
                .Close
            End With
        Else
            GoTo Err_
        End If
    End With
    Chk = 1
Err_:
    DownFile = (Chk = 1)
    Set oHTTP = Nothing
End Function

Bạn thay
.write oHTTP.responseBody

Thành

.write oHTTP.responseStream
 
Upvote 0
E đã thử cách này rồi vẫn không được anh ạ !

Lỗi thật. State không phải trả về 200 đâu. Do link này trên DropBox chắc không phải dùng các lệnh gọi thông thường. Phải có một control khác hỗ trợ download nó. Bạn tìm giải pháp với control khác xem.
 
Upvote 0
Lỗi thật. State không phải trả về 200 đâu. Do link này trên DropBox chắc không phải dùng các lệnh gọi thông thường. Phải có một control khác hỗ trợ download nó. Bạn tìm giải pháp với control khác xem.
Dạ, em đang nghi ngờ do ông Dropbox thay đổi gì đó ( vì trước giờ e xài kiểu này download bình thường). E có chuyển qua google drive để tải thì nếu File em up lên là Excel thì tải về bình thường nhưng nếu là File TXT hoặc XML thì nội dung bên trong nó không có đúng với File gốc e up lên Google Drive !
 
Upvote 0
Upvote 0
Dạ, em đang nghi ngờ do ông Dropbox thay đổi gì đó ( vì trước giờ e xài kiểu này download bình thường). E có chuyển qua google drive để tải thì nếu File em up lên là Excel thì tải về bình thường nhưng nếu là File TXT hoặc XML thì nội dung bên trong nó không có đúng với File gốc e up lên Google Drive !

DropBox đã nâng cấp API từ V1 thành V2 kiểm soát chặt hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Không đúng ở chỗ nào?
Code bạn đã làm đâu? Nói suông thế không hay.


Bạn tạo file text nhiều chữ chút (chép luôn một đoạn nào đó bài của bạn ở đây chẳng hạn) rồi up lại lên dropbox và gửi link qua đây.
Code download mình giống bên trên á bạn.
Đây là link File XML trên Google Drive :
Nhờ bạn xem giúp mình ( sau khi qua code download về thì XML bên trên biến dạng như hình bên dưới, File TXT cũng thế, nhưng Excel thì không bị )
Cảm ơn bạn !z2715251141640_a683cb511b4175e649aa902cbca3dc03.jpg
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom