GET参数值包含逗号,netty对其进行编码 - 破坏服务

时间:2015-07-17 18:50:49

标签: rest http netty

我正在使用Weather.com网络服务,该服务采用“纬度,经度”值(例如“40.87601089477539,-87.43512725830078”)并使用Netty处理网络通信。

服务响应错误,这是由我的参数值的逗号被转义(即“40.87601089477539%2C-87.43512725830078”)引起的。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
<nav>
  <ul class="pagination">
    <li>
      <a href="#" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
    <li>
      <a href="#" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
  </ul>
</nav>

转义是在# works (when a confidential API key is added) http://api.weather.com/v2//location?geocode=40.87601089477539,-87.43512725830078 # doesn't work http://api.weather.com/v2//location?geocode=40.87601089477539%2C-87.43512725830078 中完成的。如果我能够将false传递给它,那么我的问题就会得到解决,但是Netty库会调用这个方法而不是我,并且该选项是硬编码的。

1)Netty消费者是否有解决方法? 2)解决这个问题的正确方法是什么?

编辑其他详细信息

堆栈追踪:

com.ning.http.client.RequestBuilderBase.toUrl(boolean encode)

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,这里没有公共图书馆的责任。您可以设置一个标志来阻止编码(int()):

setUseRawUrl(true)