Sử dụng Shell() đăng nhập vào web oracle nội bộ_obiee go url

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

hvnhpro

Thành viên hoạt động
Tham gia
3/3/11
Bài viết
126
Được thích
73
Giới tính
Nam
Em chào các Anh/Chị diễn đàn GPE,
Em có đang nghiên cứu Shell() để lấy load dữ liệu từ web nội bộ của cty (Oracle BI) về máy tính.
Em có tìm trên diễn đàn nhưng chưa thấy chủ đề tương tự nên viết bài để Anh/Chị ghé qua góp ý.

Mã:
Sub Load()
WSHShell = Shell("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe -url " & ThisWorkbook.Sheets("Sheet1").Range("A1"))
End Sub

nội Dung URL
http://report.com.vn/analytics/saw.dll?Go&Path=%2Fusers%2FName%2FTEST%2FReport_B&NQUser=user_cua_em&NQPassword=MatKhauCaNhan&Action=Extract&format=csv
đang để ở ô A1- em tham khảo trên web để nhập thông tin URL nhằm download dữ liệu từ web về.

Code vẫn hoạt động được nếu em login_đăng nhập trên trình duyệt trước rồi bấm chạy code trên file excel ạ.
Nếu chưa đăng nhập trước trên trình duyệt thì khhi chạy code thì trình web hiện phần login_yêu cầu đăng nhập.

Em muốn không cần đăng nhập_login trước ở trên trình duyệt nên em viết bài này mong các Anh/Chị có thể giúp đỡ em tìm lỗi URL ở đâu để hoàn thiện code ạ.
Em cảm ơn
Nguồn tài liệu em có tham khảo tại trang oracle
 
Lần chỉnh sửa cuối:
Cái đó thực chất là đăng nhập vào tài khoản từ trình duyệt web, tìm tới link tải file rồi nhấn tải về (Khúc này được thay bằng đường dẫn chỉnh định như hướng dẫn).
Vậy bắt buộc trình duyệt để mở url đó phải đăng nhập vào web rồi.

Theo cách thức hoạt động của trang web kia thì hoàn toàn có thể viết code tải trực tiếp thông qua API, không cần trình duyệt web.
 
Upvote 0
Cái đó thực chất là đăng nhập vào tài khoản từ trình duyệt web, tìm tới link tải file rồi nhấn tải về (Khúc này được thay bằng đường dẫn chỉnh định như hướng dẫn).
Vậy bắt buộc trình duyệt để mở url đó phải đăng nhập vào web rồi.

Theo cách thức hoạt động của trang web kia thì hoàn toàn có thể viết code tải trực tiếp thông qua API, không cần trình duyệt web.
Em cảm ơn Anh đã đọc bài viết, để em nghiên cứu thêm về API xem sao.
Vụ đăng nhập em có đọc tham khảo link của trang oracle và làm theo nhưng không vẫn không được nên mới viết bài trên ạ.
 
Upvote 0
Tôi là chủ công ty, thấy bạn làm được là tôi đuổi thằng admin của Oracle.
Luật: bất cứ cách kết nối, qua cái gì đều phải được admin cho phép. Và thủ tục kết nối bắt buộc như vậy. Nếu có thể đi vòng được là admin chưa bảo vệ CSDL Oracle đủ.
 
Upvote 0
Tôi là chủ công ty, thấy bạn làm được là tôi đuổi thằng admin của Oracle.
Luật: bất cứ cách kết nối, qua cái gì đều phải được admin cho phép. Và thủ tục kết nối bắt buộc như vậy. Nếu có thể đi vòng được là admin chưa bảo vệ CSDL Oracle đủ.
Anh chưa hiểu ý em rồi hoặc có thể chưa xem code em viết. Do nguồn lấy từ web nội bộ nên em không gửi file lên để kiểm tra được, mà chỉ gửi code cho mọi người bắt bệnh nên em hiểu là cũng rất khó cho Anh hay mọi người hỗ trợ em.

Không phải là em bỏ qua thủ tục đăng nhập khi kết nối mà em có khai báo thông tin đăng nhập vào code như theo hướng dẫn của Oracle rồi mà không được, nên em mới viết bài để các Anh/Chị xem giúp là em có viết sai gì không thôi ạ (do em không hiểu lắm vụ "/" biến thành "%",...).
Em cảm ơn Anh đã đọc bài viết của em.
1679968276299.png
 
Upvote 0
do em không hiểu lắm vụ "/" biến thành "%"

Không phải thế.
Cái API của server được thiết kế nhận payload ở dạng "application/x-www-form-urlencoded" thì giá trị chuỗi trong payload đều qua urlencoded hết.
Mã:
http://report.com.vn/analytics/saw.dll?Go&Path=%2Fusers%2FName%2FTEST%2FReport_B&NQUser=user_cua_em&NQPassword=MatKhauCaNhan&Action=Extract&format=csv
Những cái sau saw.dll? là các tham số của payload từ client gửi lên server.
Giữa các tham số của payload được ghép nối bằng dấu &
Tham số Path có giá trị: /users/Name/TEST/Report_B. Qua urlencoded có kết quả là %2Fusers%2FName%2FTEST%2FReport_B
urlencoded("/") = %2F chứ không phải biến thành "%".

Để mà đọc hướng dẫn của họ rồi làm được thì tối thiểu bạn phải có kiến thức cơ bản về web đã.
 
Upvote 0
Không phải thế.
Cái API của server được thiết kế nhận payload ở dạng "application/x-www-form-urlencoded" thì giá trị chuỗi trong payload đều qua urlencoded hết.
Mã:
http://report.com.vn/analytics/saw.dll?Go&Path=%2Fusers%2FName%2FTEST%2FReport_B&NQUser=user_cua_em&NQPassword=MatKhauCaNhan&Action=Extract&format=csv
Những cái sau saw.dll? là các tham số của payload từ client gửi lên server.
Giữa các tham số của payload được ghép nối bằng dấu &
Tham số Path có giá trị: /users/Name/TEST/Report_B. Qua urlencoded có kết quả là %2Fusers%2FName%2FTEST%2FReport_B
urlencoded("/") = %2F chứ không phải biến thành "%".

Để mà đọc hướng dẫn của họ rồi làm được thì tối thiểu bạn phải có kiến thức cơ bản về web đã.
Đúng rồi ạ, em tay ngang nên không hiểu lắm về web http.
Em cảm ơn Anh đã chỉ dạy thêm, để em nghiên cứu tiếp ạ.
 
Upvote 0
Không phải thế.
Cái API của server được thiết kế nhận payload ở dạng "application/x-www-form-urlencoded" thì giá trị chuỗi trong payload đều qua urlencoded hết.
Mã:
http://report.com.vn/analytics/saw.dll?Go&Path=%2Fusers%2FName%2FTEST%2FReport_B&NQUser=user_cua_em&NQPassword=MatKhauCaNhan&Action=Extract&format=csv
Những cái sau saw.dll? là các tham số của payload từ client gửi lên server.
Giữa các tham số của payload được ghép nối bằng dấu &
Tham số Path có giá trị: /users/Name/TEST/Report_B. Qua urlencoded có kết quả là %2Fusers%2FName%2FTEST%2FReport_B
urlencoded("/") = %2F chứ không phải biến thành "%".

Để mà đọc hướng dẫn của họ rồi làm được thì tối thiểu bạn phải có kiến thức cơ bản về web đã.
Anh befaint ơi, em có tìm hiểu về UrlEndCoded trên link https://www.w3schools.com/tags/ref_urlencode.ASP nhưng áp dụng vào code vẫn chưa xài được. Anh cho em hỏi là em tìm đúng nguồn chưa ạ.
Nếu chưa đúng a cho em xin link tài liệu với. Em cảm ơn Anh ạ.
urlencoded("@") = "%40"
urlencoded(".") = "%2E"
 
Upvote 0
Anh befaint ơi, em có tìm hiểu về UrlEndCoded trên link https://www.w3schools.com/tags/ref_urlencode.ASP nhưng áp dụng vào code vẫn chưa xài được. Anh cho em hỏi là em tìm đúng nguồn chưa ạ.
Nếu chưa đúng a cho em xin link tài liệu với. Em cảm ơn Anh ạ.
urlencoded("@") = "%40"
urlencoded(".") = "%2E"
Hàm urlencode đầy trên mạng mà, mình nhớ trong stackoverflow có đấy
 
Upvote 0
Anh befaint ơi, em có tìm hiểu về UrlEndCoded trên link https://www.w3schools.com/tags/ref_urlencode.ASP nhưng áp dụng vào code vẫn chưa xài được. Anh cho em hỏi là em tìm đúng nguồn chưa ạ.
Nếu chưa đúng a cho em xin link tài liệu với. Em cảm ơn Anh ạ.
urlencoded("@") = "%40"
urlencoded(".") = "%2E"

Đơn giản nhất là bạn dùng Excel 2013 trở lên.

worksheetfunction.encodeUrl(string_)
1680255805998.png
 
Upvote 0
Web KT

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

Back
Top Bottom