cuốn sách gpt4 ai đã làm

Làm cách nào để triển khai phía máy chủ C# khi sử dụng ASIFormDataRequest?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 14:19:24 27 4
mua khóa gpt4 Nike

Tôi đang cố gắng sử dụng ASIFormDataRequest để gửi dữ liệu tới phía máy chủ ASP.net. Tôi đã tạo một trang aspx. Hiện tại tôi có thể nhận được cả văn bản thuần túy. Nhưng tôi không biết cách sử dụng NSdata trong C# thông qua request.Form.

Đây là mã Obj-C:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[yêu cầu setPostValue:@"Ben" forKey:@"name"];
[yêu cầu setPostValue:@"Copsey" forKey:@"code"];
[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];
[yêu cầu setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"];

Đây là mã C# hiện tại:

 tên chuỗi = Yêu cầu.Form ["tên"] == null "" : Yêu cầu.Form ["tên"];
mã chuỗi = Yêu cầu.Form["code"]==null?"":Request.Form["code"];

Như bạn có thể thấy, trong iphone tôi cố gắng gửi hình ảnh đến phía máy chủ C# nhưng tôi không biết cách thực hiện?

câu trả lời hay nhất

Để gửi hình ảnh xuống dịch vụ WCF REST, hãy sử dụng ASIFormDataRequest. Đây là một ví dụ từ một trong những dự án sản xuất của chúng tôi...

Giả sử tôi có UIImage trong một var có tên là "hình ảnh"

NSString *surl = @"http:www.SomeRestService.com"    
NSURL *url = [NSURL URLWithString:surl];

ASIFormDataRequest *r = [ASIFormDataRequest requestWithURL:url];
[r setValidatesSecureCertificate:NO];
[r setTimeOutSeconds:30];
[r setRequestMethod:@"POST"] // mặc định là POST (chèn),
[r setDelegate:self];
[r setDidFailSelector:@selector(requestDidFail:)];
//[r addRequestHeader:@"Content-Type" value:@"application/json"] điều này sẽ khiến cuộc gọi không thành công.


NSMutableData *imageData = [NSMutableData dataWithData:UIImageJPEGRepositionation(image, .35)]; //chúng tôi thực sự đang nén hình ảnh của mình.. tất nhiên, bạn có thể làm những gì bạn muốn.
[r setPostBody:imageData];
[r setDidFinishSelector:@selector(imageSaveDidFinish:)];
[r startKhông đồng bộ];

Ok, về phía WCF, bạn cần xác định một phương thức nhận System.IO.Stream và Stream cần phải là tham số cuối cùng được xác định, nó phải là POST và không được chứa bất kỳ tham số nào khác như một phần của phần thân POST ( bạn có thể Xác định các tham số trong URL và chuỗi truy vấn, mặc dù một số người theo chủ nghĩa thuần túy sẽ nói rằng đây là dạng không tốt cho REST POST).

[WebInvoke(UriTemplate = "Tải lên", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, Method = "POST")]
public GenericObject SaveReceiptImage(System.IO.Stream imageStream)
{
thử
{
bộ đệm byte [] = byte mới [16 * 1024];

using (MemoryStream ms = new MemoryStream())
{
int đọc = 0;
while ((read = imageStream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(bộ đệm, 0, đọc);
}

ms.Vị trí = 0;

if (ms.Length > 0)
{
// lưu mảng byte của bạn vào nơi bạn muốn
}
khác
{
// ôi, không có hình ảnh nào được đưa vào
}
}
}
catch (Exception ex)
{
// xảy ra lỗi xấu, hãy đăng nhập
}

trả lại bất cứ điều gì;
}

Làm cách nào để triển khai phía máy chủ C# khi sử dụng ASIFormDataRequest? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/5847394/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress