1

我正在开发一个从 JIRA 数据库中提取数据的应用程序。我正在使用 RESTClient API 使用post方法进行基本身份验证。

完整代码(已编辑):

class IssuesController {

    def xyz = this.encodeAuth("username", "password")
    def index() {

        def login = new RESTClient ('http://my-jira/rest/auth/1/')
        def response = login.post(
            path : 'session',
            headers : ['Authorization' : 'Basic ' + xyz + '=='])

        render response.data.toString()

    }
    public String encodeAuth(username, password) {
        def authC = username + ':' + password
        def bytes = authC.bytes
        return bytes.encodeBase64().toString();
    }

我收到HTTPResponseException一条消息Unsupported Media Type。如果我改用get方法,则身份验证工作得很好。(但它不会启动会话,所以没用)。我什至尝试更改标题,headers : ['Content-Type' : 'application/json', 'Accept' : 'application/json'].

使用 FireBug 分析网络标头,Content-TypeAccept标头仍然没有变化。

Response Headers

HTTP/1.1 500 Internal Server Error

Content-Type: text/html;charset=UTF-8

Content-Language: en-US

Connection: close


Request Headers

GET /GTPortal/issues/index HTTP/1.1

Host: localhost:8099

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

任何帮助为什么在使用 POST 时出现 Unsupported Media Type 消息!?

4

1 回答 1

0

检查你的休息服务接受什么样的请求数据,如应用程序/json等,以及你的帖子请求中缺少的正文部分。RESTClient 将放入Accept: */*请求标头,并根据响应内容类型标头中给出的任何内容解析响应。有关更多信息,请访问。 http://groovy.codehaus.org/modules/http-builder/doc/rest.html

于 2013-09-01T18:34:38.960 回答