Python Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming LanguagesPython Programming
Receive the tools necessary to be the rock star of your field. Our 12-month program teaches you the evolving world of multi-channel marketing as well as the complex issues and opportunities found in the industry.

ASP Free and Iron Speed Designer are giving away $5,500+ in FREE licenses. Iron Speed's RAD CASE toolset can save up to 80% of your coding time. One free license per week, one perpetual license per month!
Download and Activate to enter!

Web development can be a daunting task, even for specialists. There is a lot of information to absorb and a lot of technologies to learn in order to manage a superior website. When trying to learn the ropes, developers need a reliable source to introduce new ideas that can be easily implemented. When working on large projects, even web veterans may run into a technology or an aspect of a technology that they are unfamiliar with.

Learn More!


Download to Enter
| Contest Rules

Tutorials | Forums

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old January 28th, 2012, 11:57 AM
hdattada hdattada is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2012
Posts: 3 hdattada User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 58 m 2 sec
Reputation Power: 0
BaseHttpHandler custom methods

Hi I am trying to create a simple webserver program in python 3.2.2 and I want the server to process different methods other than GET and POST. These methods are handled by default by the library.

I want to handle a OPTIONS method and I used a do_OPTIONS() method to handle it. But the programs still doesnt recognize this method. Can someone please help me with that.

Code:
import string,cgi,time
from os import curdir, sep
from http.server import BaseHTTPRequestHandler, HTTPServer
#import pri

class MyHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        try:
            if self.path.endswith(".html"):
                f = open(curdir + sep + self.path) #self.path has /test.html
#note that this potentially makes every file on your computer readable by the internet

                self.send_response(200)
                self.send_header('Content-type',   'text/html')
                self.end_headers()
                self.wfile.write(f.read())
                f.close()
                return
            if self.path.endswith(".esp"):   #our dynamic content
                self.send_response(200)
                self.send_header('Content-type',   'text/html')
                self.end_headers()
                self.wfile.write("hey, today is the" + str(time.localtime()[7]))
            ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
            if ctype == 'multipart/form-data':
                query=cgi.parse_multipart(self.rfile, pdict)
            self.send_response(301)
            
            self.end_headers()
            upfilecontent = query.get('upfile')
            print (("filecontent", upfilecontent[0]))
            self.wfile.write("<HTML>POST OK.<BR><BR>");
            self.wfile.write(upfilecontent[0]);
            
        except :
            pass
         
def do_OPTIONS(self):
         try:
            self.send_response(200)
         except:
            pass

def main():
    try:
        server = HTTPServer(('', 5080), MyHandler)
        print ('started httpserver...')
        server.serve_forever()
    except KeyboardInterrupt:
        print ('^C received, shutting down server')
        server.socket.close()

if __name__ == '__main__':
    main()




and I get the below error:

<head>
<meta http-equiv="Content-Type" content="t
/html;charset=utf-8">
<title>Error response</title>
</head>
<bod
<h1>Error response</h1>
<p>Error code: 400</p>
<p>Messag
Bad HTTP/0.9 request type ('OPTIONS').</p>
<p>Error code explanation:
- Bad request syntax or unsupported method.</p>
</body>
</html>

Reply With Quote
  #2  
Old January 28th, 2012, 10:08 PM
b49P23TIvg's Avatar
b49P23TIvg b49P23TIvg is offline
Contributing User
Click here for more information.
 
Join Date: Aug 2011
Posts: 1,075 b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level)b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level)b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level)b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level)b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level)b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level)b49P23TIvg User rank is Second Lieutenant (5000 - 10000 Reputation Level) 
Time spent in forums: 4 Weeks 1 Day 4 h 41 m 27 sec
Reputation Power: 98
code tags here use square [brackets], not angle brackets <code>

Reply With Quote
  #3  
Old January 28th, 2012, 10:19 PM
hdattada hdattada is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2012
Posts: 3 hdattada User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 58 m 2 sec
Reputation Power: 0
Quote:
Originally Posted by b49P23TIvg
code tags here use square [brackets], not angle brackets <code>



Thank you for pointing this out.

Reply With Quote
  #4  
Old January 28th, 2012, 11:50 PM
hdattada hdattada is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2012
Posts: 3 hdattada User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 58 m 2 sec
Reputation Power: 0
I fixed it. There was an issue with the request I was sending to the program. Initially I was sending OPTIONS HTTP/1.1 as the method request through telnet.

However, the correct way to send a request is
OPTIONS * HTTP/1.1

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming LanguagesPython Programming > BaseHttpHandler custom methods


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 2 - Follow our Sitemap