Jump to content

mrq1991

Members
  • Số lượng nội dung

    4
  • Đã tham gia

  • Lần ghé thăm cuối

Cộng đồng

0 Neutral

Khách vừa ghé thăm

Khách vừa ghé thăm đã bị tắt và không được hiển thị tới những người dùng khác.

  1. Mình để thử "" thì không được Mỵ ạ. Google dịch thì báo "Giá trị tham số không được là một chuỗi có độ dài bằng không."
  2. Mỵ cho mình hỏi: - Mình thay giá trị chuỗi rỗng = Space có bị ảnh hưởng gì ko ạ tại xnet ko cho để giá trị là rỗng, và làm cách nào để xem đc nội dung cái data MutipartConent ạ - Hình như xnet tự add cookie vào request khi login thành công đúng ko ạ.
  3. Web nội bộ này đơn giản lắm ạ. Cứ lấy token xong Post là được ạ. Trước em dùng cái HttpRequest của bác Huân Hoàng thì nó ra được dạng giống FireFox gửi đi. Còn C# thì em đang ko biết view data dạng MultipartContent này ntn nên không biết data gửi đi như thế nào. E mới học C# nên c Mỵ đừng cười e ạ :) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Net; using System.Security.Principal; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Windows.Forms; using xNet; namespace test_Request { public partial class Form1 : Form { public Form1() { InitializeComponent(); } void AddCookie(HttpRequest http, string cookie) { var temp = cookie.Split(';'); foreach (var item in temp) { var temp2 = item.Split('='); if (temp2.Count() > 1) { http.Cookies.Add(temp2[0], temp2[1]); } } } string GetData(HttpRequest http, string url, string cookie = null) { string html = http.Get(url) + ""; http.Cookies = new CookieDictionary(); if (!string.IsNullOrEmpty(cookie)) { AddCookie(http, cookie); } if (http == null) { http = new HttpRequest(); http.Cookies = new CookieDictionary(); } return html; } string PostData(HttpRequest http, string url, string data = null, string contentType = null, string userArgent = "", string cookie = null) { if (http == null) { http = new HttpRequest(); http.Cookies = new CookieDictionary(); } if (!string.IsNullOrEmpty(cookie)) { AddCookie(http, cookie); } if (!string.IsNullOrEmpty(userArgent)) { http.UserAgent = userArgent; } string html = http.Post(url, data, contentType) + ""; return html; } string UploadData(HttpRequest http, string url, MultipartContent data = null, string contentType = null, string userArgent = "", string cookie = null) { if (http == null) { http = new HttpRequest(); http.Cookies = new CookieDictionary(); } if (!string.IsNullOrEmpty(cookie)) { AddCookie(http, cookie); } if (!string.IsNullOrEmpty(userArgent)) { http.UserAgent = userArgent; } string html = http.Post(url, data) + ""; return html; } string getTokenUpload(string data) { Regex reg = new Regex(@"""token"" value=""(.*?)"" \/>"); Match result = reg.Match(data); string token = result.ToString().Remove(0, 15); token = token.Remove(token.Length - 4); return token; } private void button1_Click(object sender, EventArgs e) { HttpRequest http = new HttpRequest(); string un = ""; string pw = ""; GetData(http, "https://172.16.20.150/ccmadmin/showHome.do"); string DataPost = "appNav=ccmadmin&j_username=" + WebUtility.UrlEncode(un) + "&j_password=" + WebUtility.UrlEncode(pw); string Content_Type = "application/x-www-form-urlencoded"; string urlPost = "https://172.16.20.150/ccmadmin/j_security_check"; string response = PostData(http, urlPost, DataPost, Content_Type).ToString(); string cookie_login = http.Response.Cookies.ToString(); string rToken = GetData(http,"https://172.16.20.150/ccmadmin/bulkfileuploadEdit.do"); string token = getTokenUpload(rToken); string path = @"C:\Users\longqh\source\repos\Cisco Universe\bin\Debug\TUBQ_UPDATE.csv"; MultipartContent data = new MultipartContent() { {new StringContent("struts.token.name"),"token"}, {new StringContent("token"),token}, {new StringContent("pkid")," "}, {new FileContent(path),"filename"}, {new StringContent("idval"),"0"}, {new StringContent("searchString"),"0"}, {new StringContent("activebps")," "}, {new StringContent("file"),"TUBQ_UPDATE.csv"}, {new StringContent("selecttheentity"),"2"}, {new StringContent("selecttransactiontype"),"33"}, {new StringContent("overwriteExistingFile"),"true"}, {new StringContent("__checkbox_overwriteExistingFile"),"true"} }; var html = UploadData(http, "https://172.16.20.150/ccmadmin/bulkfileuploadSave.do", data, "multipart/form-data",cookie: cookie_login); } } }
  4. E là newbie C# nên mọi người giúp e case này với. E sử dụng HttpRequest bên Autoit thì up file lên OK nhưng qua Xnet thì ko Up file lên đc, không biết lỗi ở đâu mong mọi người giải đáp giúp em ạ! ------------------------------------------------ XNET ---------------------------------------------------------------------------------------------- string cookie_login = http.Response.Cookies.ToString(); string rToken = GetData(http,"https://172.16.20.150/ccmadmin/bulkfileuploadEdit.do"); string token = getTokenUpload(rToken); string path = @"C:\Users\longqh\source\repos\Cisco Universe\bin\Debug\TUBQ_UPDATE.csv"; MultipartContent data = new MultipartContent() { {new StringContent("struts.token.name"),"token"}, {new StringContent("token"),token}, {new StringContent("pkid")," "}, {new StringContent("filename"),path}, {new StringContent("idval"),"0"}, {new StringContent("searchString"),"0"}, {new StringContent("activebps")," "}, {new StringContent("file"),path}, {new StringContent("selecttheentity"),"2"}, {new StringContent("selecttransactiontype"),"33"}, {new StringContent("overwriteExistingFile"),"true"}, {new StringContent("__checkbox_overwriteExistingFile"),"true"} }; var html = UploadData(http, "https://172.16.20.150/ccmadmin/bulkfileuploadSave.do", data, "multipart/form-data",cookie: cookie_login); ------------------------------------- AUTOIT httprequest -------------------------------------------------------------------------- Func upCSV_UpdateUser() $filePath = @ScriptDir&'\'&$ldap_id&'_UPDATE.csv' $r_token = _HttpRequest(2,'https://172.16.20.150/ccmadmin/bulkfileuploadEdit.do',$cookie_login) $token_upload = StringRegExp($r_token,'value="(.*?)" \/>',3)[1] Local $aForm = [['struts.token.name', 'token'], ['token', $token_upload], ['pkid', ''], ['filename', $filePath], ['idval','0'],['searchString','0'],['activebps',''],['$file', $filePath],['selecttheentity','2'], ['selecttransactiontype','33'],['overwriteExistingFile','true']] $dataPos=_HttpRequest_DataFormCreate($aForm) $upload_file = _HttpRequest(2, 'https://172.16.20.150/ccmadmin/bulkfileuploadSave.do', $dataPos) EndFunc ------------------------------- firefox -----------------------------------
×
×
  • Create New...