Tôi đang sử dụng AFNetworking
2.0.AFNetworking serializes dấu gạch chéo về phía trước làm cho tải trọng JSON không hợp lệ
Trong AFNetworking
, AFHTTPRequestOperationManager
đối tượng có một API:
(AFHTTPRequestOperation *)POST:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
Nó chấp nhận NSDictionary như params cho Payload JSON mà chúng tôi muốn 'POST' lên máy chủ. Trong tải trọng của tôi, tôi đã sau cặp khóa-giá trị:
"buttonActionParam":"/catalog/special/international-calling"
gửi bài máy chủ tải trọng này trả về JSON không hợp lệ. Nhìn vào tải trọng trên máy chủ bên tôi nhận ra rằng AFNetworking đang thực sự gửi:
"buttonActionParam":"\/catalog\/special\/international-calling".
Tôi biết rằng AFNetworking
thư viện sử dụng lớp phương pháp NSJSONSerialization
's -dataWithJSONObject:
, mà nguyên nhân này. Câu hỏi của tôi là:
Q. Cách khắc phục sự cố này?
Không chắc chắn tôi hiểu câu hỏi: bạn đang nói rằng bạn đang cố gắng gửi "buttonActionParam": "/ catalog/special/international-calling" và đây chính xác là những gì đang được gửi bởi AFNetworking, vì vậy, vấn đề? –
Đã chỉnh sửa câu hỏi của tôi. Đã phải đặt nhân vật thoát. :) –
'NSData' xuất phát từ' NSJSONSerialization' không hoàn toàn giống với những gì bạn thấy ở phía máy chủ - nó hiển thị '{" buttonActionParam ":" \/catalog \/special \/international- gọi "}" trong trình soạn thảo hex của tôi. Tôi tự hỏi nếu đó là một vấn đề mã hóa ký tự - trông giống như máy chủ được gắn bó trong một thoát thêm \ vì lý do nào đó. –