Class Net::HTTPGenericRequest
In: lib/net/http.rb
Parent: Object

Parent of HTTPRequest class. Do not use this directly; use a subclass of HTTPRequest.

Mixes in the HTTPHeader module.

Methods

Included Modules

HTTPHeader

Attributes

body  [R] 
body_stream  [R] 
method  [R] 
path  [R] 

Public Class methods

[Source]

      # File lib/net/http.rb, line 1470
1470:     def initialize(m, reqbody, resbody, path, initheader = nil)
1471:       @method = m
1472:       @request_has_body = reqbody
1473:       @response_has_body = resbody
1474:       raise ArgumentError, "HTTP request path is empty" if path.empty?
1475:       @path = path
1476:       initialize_http_header initheader
1477:       self['Accept'] ||= '*/*'
1478:       @body = nil
1479:       @body_stream = nil
1480:     end

Public Instance methods

[Source]

      # File lib/net/http.rb, line 1504
1504:     def body=(str)
1505:       @body = str
1506:       @body_stream = nil
1507:       str
1508:     end

[Source]

      # File lib/net/http.rb, line 1497
1497:     def body_exist?
1498:       warn "Net::HTTPRequest#body_exist? is obsolete; use response_body_permitted?" if $VERBOSE
1499:       response_body_permitted?
1500:     end

[Source]

      # File lib/net/http.rb, line 1512
1512:     def body_stream=(input)
1513:       @body = nil
1514:       @body_stream = input
1515:       input
1516:     end

[Source]

      # File lib/net/http.rb, line 1485
1485:     def inspect
1486:       "\#<#{self.class} #{@method}>"
1487:     end

[Source]

      # File lib/net/http.rb, line 1489
1489:     def request_body_permitted?
1490:       @request_has_body
1491:     end

[Source]

      # File lib/net/http.rb, line 1493
1493:     def response_body_permitted?
1494:       @response_has_body
1495:     end

Private Instance methods

[Source]

      # File lib/net/http.rb, line 1539
1539:     def send_request_with_body(sock, ver, path, body)
1540:       self.content_length = body.length
1541:       delete 'Transfer-Encoding'
1542:       supply_default_content_type
1543:       write_header sock, ver, path
1544:       sock.write body
1545:     end

[Source]

      # File lib/net/http.rb, line 1547
1547:     def send_request_with_body_stream(sock, ver, path, f)
1548:       unless content_length() or chunked?
1549:         raise ArgumentError,
1550:             "Content-Length not given and Transfer-Encoding is not `chunked'"
1551:       end
1552:       supply_default_content_type
1553:       write_header sock, ver, path
1554:       if chunked?
1555:         while s = f.read(1024)
1556:           sock.write(sprintf("%x\r\n", s.length) << s << "\r\n")
1557:         end
1558:         sock.write "0\r\n\r\n"
1559:       else
1560:         while s = f.read(1024)
1561:           sock.write s
1562:         end
1563:       end
1564:     end

[Source]

      # File lib/net/http.rb, line 1566
1566:     def supply_default_content_type
1567:       return if content_type()
1568:       warn 'net/http: warning: Content-Type did not set; using application/x-www-form-urlencoded' if $VERBOSE
1569:       set_content_type 'application/x-www-form-urlencoded'
1570:     end

[Source]

      # File lib/net/http.rb, line 1572
1572:     def write_header(sock, ver, path)
1573:       buf = "#{@method} #{path} HTTP/#{ver}\r\n"
1574:       each_capitalized do |k,v|
1575:         buf << "#{k}: #{v}\r\n"
1576:       end
1577:       buf << "\r\n"
1578:       sock.write buf
1579:     end

[Validate]