2012-04-19 6 views
2

私は重大な問題があります。私は、私のアプリケーションをもっと古いアプリケーションに統合したいと思います。このサービスは単なるWebフォームであり、おそらくフレームワークの背後にあります(私はASP Classicかもしれません)。私はアクションURLを持っており、このサービスを複製するためのHTMLコードがあります。WebページフォームをPythonコードビハインドでシミュレートするにはどうすればよいですか?

これは、古いサービス(HTMLページ)の一部です:

<FORM method="POST" 
    url="https://host/path1/path2/AdapterHTTP?action_name=myactionWebAction&NEW_SESSION=true" 
    enctype="multipart/form-data"> 

    <INPUT type="text" name="AAAWebView-FormAAA-field1" /> 
    <INPUT type="hidden" name="AAAWebView-FormAAA-field2" value="" /> 
    <INPUT type="submit" name="NAV__BUTTON__press__AAAWebView-FormAAA-enter" value="enter" /> 
</FORM> 

私のアプリケーションは、Pythonとcode-behindからこの古いアプリケーションのフォーム送信をシミュレートする必要があります。今のところ私はあまり運がなかった。今、私はこの

import requests 
payload = {'AAAWebView-FormAAA-field1': field1Value, \ 
    'AAAWebView-FormAAA-field2': field2Value, \ 
    'NAV__BUTTON__press__AAAWebView-FormAAA-enter': "enter" 
} 
url="https://host/path1/path2/AdapterHTTP?action_name=myactionWebAction&NEW_SESSION=true" 
headers = {'content-type': 'multipart/form-data'} 
r = requests.post(url, data=payload, headers=headers) 
print r.status_code 

は、私は200 HTTPレスポンスコードを受け取りますが、私はHTMLページ上の送信ボタンをクリックした場合、アクションは値を保存しますが、私のコードは、同じことをしていないために

。この問題を解決するにはどうすればよいですか?


古いアプリケーションの所有者が私にこのJava例外ログを送信しました。何か案は?

org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found 
+0

正しいURLを入力しているという理由だけで、あなたのリクエストが正しいというわけではありません。データが欠落しているか、無効なデータがある。 – dm03514

答えて

4

空の辞書をrequests.postとfilesとして渡してみてください。これは適切に複数の境界を持つ要求を構築すると思います。

r = requests.post(url, data=payload, headers=headers, files={}) 
関連する問題