1

我正在调用一个 REST Web 服务,它给了我这个文档

HTTP Method: POST 
Path: /commit/{path}/add-node  
Response Status 200, 302, 403, 404, 409, 503 

Form Parameters 
    - name : attribute name 
    - message : commit message 

基于此文档。我已经编写了以下 C# 代码。

  string restUrl = webServiceurl + "/commit/" + path + "/add-node";
  restUrl = restUrl + "?name=" + nodeName + "&message=" + commitMessage;
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(restUrl);
  request.Method = "POST";
  request.ContentType = @"application/json";
    using (WebResponse response = request.GetResponse()) {
      using (StreamReader reader = new StreamReader(response.GetResponseStream())) {
        output = reader.ReadToEnd();
      }
    }

我也试过

  string restUrl = webServiceurl + "/commit/" + path + "/add-node";
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(restUrl);
  request.Method = "POST";
  request.ContentType = @"application/json";
  var param = new { name = nodeName, message = commitMessage };
  Stream reqStream = null;
  string output = null;
  try {

     byte[] buffer = Encoding.GetEncoding("UTF-8").GetBytes(
                        JsonConvert.SerializeObject(param)
                    );

    request.ContentLength = buffer.Length;
    reqStream = request.GetRequestStream();
    reqStream.Write(buffer, 0, buffer.Length);

    using (WebResponse response = request.GetResponse()) {
      using (StreamReader reader = new StreamReader(response.GetResponseStream())) {
        output = reader.ReadToEnd();
      }
    }
  } catch (Exception ex) {
      .....
  }

不幸的是,在这两种情况下,我都得到 415 Unsupported Media Type 。我的代码有什么问题?

Web 服务是用 Java 编写的基于 REST 的 Web 服务。

4

1 回答 1

2

根据此论坛帖子,Java Web 服务可能不支持 ContentType 属性。你确定它接受 application/json 吗?

于 2013-09-05T20:58:01.677 回答