Tôi đang cố gửi dữ liệu có định dạng JSON đến máy chủ bằng Java. Thông tin đang đến máy chủ nhưng máy chủ đang phản hồi bằng "Yêu cầu không hợp lệ".Java: Xem trước HttpPost Yêu cầu
HttpPost httpost = new HttpPost(path);
StringEntity se = new StringEntity(JSONRequest);
//sets the post request as the resulting string
httpost.setEntity(se);
//sets a request header so the page receving the request will know what to do with it
httpost.setHeader("Accept", "application/json");
httpost.setHeader("Content-type", "application/json;charset=utf8");
HttpResponse response = httpclient.execute(httpost);
Đó là thiết lập cơ bản của yêu cầu của tôi. Đây là JSONData:
{"clientApplicationDto":{"AuthenticationToken":"","BrandId":12,"MobileDeviceApplicationId":0},"mobileDeviceInfo":{"CarrierName":"MTN-SA","OsVersion":"2.2.2","ClientApplicationVersion":"TEST","DeviceManufacturer":"HTC","DeviceName":"HTC Desire","DeviceUniqueId":"1e9766fa2ef4c53a","OsName":"8","ClientApplicationTypeId":3}}
Nếu điều này có vẻ phù hợp với bạn, tôi sẽ bắt đầu gửi thư rác cho quản trị viên, nhưng bây giờ, tôi cần biết nếu tôi thiếu thứ gì đó.
Hm .. cho người mới bắt đầu, 'StringEntity' (hay đúng hơn là bất kỳ 'AbstractHttpEntity' subclass) có một content-type, nó sẽ mặc định được thiết lập để hằng số 'HTTP.PLAIN_TEXT_TYPE', sử dụng' HTTP.DEFAULT_CONTENT_CHARSET' làm bộ ký tự. Hãy xem xét thiết lập kiểu nội dung của bạn bằng cách gọi 'se # setContentType (" application/json; charset = utf-8 ")' thay thế. JSON của bạn trông đẹp btw. – Jens
Chỉ để kiểm tra xem vấn đề của nó với bài đăng hoặc mã java có phải bạn đã thử yêu cầu trong một cái gì đó giống như bàn điều khiển REST của Chrome không? https://chrome.google.com/webstore/detail/cokgbflfommojglbmbpenpphppikmonn – Dori