我在C#项目中创建了一个Web请求来使用Web服务的以下方法:
private HttpWebRequest BuildRequest(string fullUri, object param, RequestMethod method, Dictionary requestHeaders)
{
HttpWebRequest request = WebRequest.Create(fullUri) as HttpWebRequest;
request.Method = method.ToString().ToUpper();
request.Accept = "application/json";
request.ContentType = "application/json";
foreach (var h in requestHeaders)
{
request.Headers.Add(string.Format("{0}: {1}", h.Key, h.Value));
}
if (method == RequestMethod.Post)
{
JavaScriptSerializer ser = new JavaScriptSerializer();
string postData = ser.Serialize(param);
request.ContentLength = postData.Length;
Stream s = request.GetRequestStream();
StreamWriter sw = new StreamWriter(s);
sw.Write(postData);
sw.Flush();
}
return request;
}现在我想在Java中做同样的事情,但无法完全弄清楚。到目前为止,我有...
private HttpRequestBase BuildRequest(String fullUri, Object param,
RequestMethod method, HashMap requestHeaders) {
HttpRequestBase request = null;
if(method == RequestMethod.GET) {
request = new HttpGet(fullUri);
} else if (method == RequestMethod.POST) {
request = new HttpPost(fullUri);
}
request.addHeader(new BasicHeader("Accept", "application/json"));
request.addHeader(new BasicHeader("ContentType", "application/json"));
for(Map.Entry header : requestHeaders.entrySet()) {
request.addHeader(new BasicHeader(header.getKey(), header.getValue()));
}
return request;
}据我所知,看起来像它会工作,但我需要像我在C#版本中所做的那样获取请求流,以便将对象作为json发送,但不能看到如何获取它。所以我的问题是如何从HttpRequestBase或任何其他可用于在java中构建HttpRequest的对象中获取它。
谢谢。
FYI .. RequestMethod是一个枚举GET或POST“
这是在android应用程序中,所以我可以在android sdk中使用任何东西。