<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -44,7 +44,10 @@ module OAuth::RequestProxy::Net
       end
 
       def query_string
-        [ query_params, post_params, auth_header_params ].compact.join('&amp;')
+        params = [ query_params, auth_header_params ]
+        is_form_urlencoded = request['Content-Type'] != nil &amp;&amp; request['Content-Type'].downcase == 'application/x-www-form-urlencoded'
+        params &lt;&lt; post_params if method.to_s.upcase == 'POST' &amp;&amp; is_form_urlencoded
+        params.compact.join('&amp;')
       end
       
       def query_params</diff>
      <filename>lib/oauth/request_proxy/net_http.rb</filename>
    </modified>
    <modified>
      <diff>@@ -129,6 +129,36 @@ class NetHTTPClientTest &lt; Test::Unit::TestCase
 #    assert_equal request['authorization'],response.body
     assert_equal &quot;oauth_token=requestkey&amp;oauth_token_secret=requestsecret&quot;,response.body
   end
+  
+  def test_that_put_bodies_not_signed
+    request = Net::HTTP::Put.new(@request_uri.path)
+    request.body = &quot;&lt;?xml version=\&quot;1.0\&quot;?&gt;&lt;foo&gt;&lt;bar&gt;baz&lt;/bar&gt;&lt;/foo&gt;&quot;
+    request[&quot;Content-Type&quot;] = &quot;application/xml&quot;
+    signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce =&gt; @nonce, :timestamp =&gt; @timestamp })
+    assert_equal &quot;PUT&amp;http%3A%2F%2Fexample.com%2Ftest&amp;oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_token%3D%26oauth_version%3D1.0&quot;, signature_base_string
+  end
+
+  def test_that_put_bodies_not_signed_even_if_form_urlencoded
+    request = Net::HTTP::Put.new(@request_uri.path)
+    request.set_form_data( { 'key2' =&gt; 'value2' } )
+    signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce =&gt; @nonce, :timestamp =&gt; @timestamp })
+    assert_equal &quot;PUT&amp;http%3A%2F%2Fexample.com%2Ftest&amp;oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_token%3D%26oauth_version%3D1.0&quot;, signature_base_string
+  end
+  
+  def test_that_post_bodies_signed_if_form_urlencoded
+    request = Net::HTTP::Post.new(@request_uri.path)
+    request.set_form_data( { 'key2' =&gt; 'value2' } )
+    signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce =&gt; @nonce, :timestamp =&gt; @timestamp })
+    assert_equal &quot;POST&amp;http%3A%2F%2Fexample.com%2Ftest&amp;key2%3Dvalue2%26oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_token%3D%26oauth_version%3D1.0&quot;, signature_base_string
+  end
+  
+  def test_that_post_bodies_not_signed_if_other_content_type
+    request = Net::HTTP::Post.new(@request_uri.path)
+    request.body = &quot;&lt;?xml version=\&quot;1.0\&quot;?&gt;&lt;foo&gt;&lt;bar&gt;baz&lt;/bar&gt;&lt;/foo&gt;&quot;
+    request[&quot;Content-Type&quot;] = &quot;application/xml&quot;
+    signature_base_string=request.signature_base_string(@http, @consumer, nil, { :nonce =&gt; @nonce, :timestamp =&gt; @timestamp })
+    assert_equal &quot;POST&amp;http%3A%2F%2Fexample.com%2Ftest&amp;oauth_consumer_key%3Dconsumer_key_86cad9%26oauth_nonce%3D225579211881198842005988698334675835446%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1199645624%26oauth_token%3D%26oauth_version%3D1.0&quot;, signature_base_string
+  end
 
   protected
 </diff>
      <filename>test/test_net_http_client.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f8dbb689b5723dd19556119c0c0481b4e90b0a69</id>
    </parent>
  </parents>
  <author>
    <name>Scott Hill</name>
    <email>git@stmpjmpr.com</email>
  </author>
  <url>http://github.com/pelle/oauth/commit/5cabd84b3c712cd3f615af174f127a47d7010561</url>
  <id>5cabd84b3c712cd3f615af174f127a47d7010561</id>
  <committed-date>2008-09-03T14:04:47-07:00</committed-date>
  <authored-date>2008-09-03T14:04:47-07:00</authored-date>
  <message>Fixed behavior where POST params in the request body were being included in the SBS even when not encoded as application/x-www-form-urlencoded.</message>
  <tree>49b2ad6ad6dcbd3252dc00946e87fce2bdd30aa6</tree>
  <committer>
    <name>Scott Hill</name>
    <email>git@stmpjmpr.com</email>
  </committer>
</commit>
