2009-05-15 38 views
6

Tôi hiện đang cố gắng chuyển một ứng dụng từ asp.net sang php, tuy nhiên tôi chỉ cần nhấn một bức tường và cần một bàn tay với điều này.Làm thế nào để đổ toàn bộ dữ liệu POST vào một tập tin trong ASP.NET

tôi cần phải đổ tất cả các dữ liệu của một recieves .aspx qua POST vào một tập tin, nhưng tôi không có đầu mối về cách để làm điều này

bất kỳ ý tưởng?

Trả lời

8

Bạn có thể sử dụng thuộc tính InputStream của Re đối tượng nhiệm vụ. Điều này sẽ cung cấp cho bạn dữ liệu thô của yêu cầu http. Nói chung bạn có thể muốn làm điều này như một trình xử lý http tùy chỉnh, nhưng tôi tin rằng bạn có thể làm điều đó bất cứ lúc nào.

if (Request.RequestType == "POST") 
{ 
    using (StreamReader reader = new StreamReader(Request.InputStream)) 
    { 
     // read the stream here using reader.ReadLine() and do your stuff. 
    } 
} 
0

Cách tốt nhất để làm điều này là thông qua một số plugin trình duyệt như Fiddler hoặc LiveHttpHeaders (chỉ dành cho Firefox). Sau đó, bạn có thể chặn dữ liệu POST thô.

6

Bạn có thể sử dụng BinaryRead để đọc từ theo yêu cầu cơ thể:

Request.BinaryRead 

Hoặc bạn có thể có được một tài liệu tham khảo để nhập Stream đối tượng với:

Request.InputStream 

Sau đó, bạn có thể sử dụng CopyStream:

using (FileStream fs = new FileStream(...)) 
    CopyStream(fs, Request.InputStream); 
+3

.NET 4.0 hiện có phương thức 'Stream.CopyTo()'. – spoulson

2

Bạn có thể sử dụng ứng dụng proxy như Fiddler. Điều này sẽ cho phép bạn xem tất cả dữ liệu đã được chuyển, cũng như lưu dữ liệu đó vào tệp nếu cần.

+0

hoàn hảo, điều này hiển thị tất cả thông tin được gửi và nhận! – Dediqated

5

Nếu bạn chỉ muốn dữ liệu POST, thì bạn có thể sử dụng Request.Form.ToString() để nhận tất cả dữ liệu theo cách mã hóa url.

if (Request.RequestType == "POST") { 
    string myData = Request.Form.ToString(); 
    writeData(myData); //use the string to dump it into a file, 
} 
Các vấn đề liên quan