gpt4 book ai didi

java - Cookies...Http POST 无法正常工作,为什么?

转载 作者:行者123 更新时间:2023-12-01 16:09:06 24 4
gpt4 key购买 nike

这可能是经常出现的问题,但我无法解决。我需要自动填写网络表单上的一些字段,这些字段是从服务器给出的。我使用 Apache HttpClient 让我的生活更轻松)现在,人们可以考虑我实现这一目标的步骤:

    1. 我没有 http://trac.edgewall.org/的证书,因此我下载该软件并在本地安装,最后我必须创建 NewTicket。
    2.我本地使用Trac,没有任何SSL(SSL隧道)。 (更改我的程序以能够使用 HTTPS 并不困难)。
    3. 现在我可以验证并执行GET请求,但无法执行POST请求

    4. 例如:我对 http://localhost:8000/tracenvir/newticket 执行 GET 请求。此 (~/newticket) 页面如下所示: http://s04.radikal.ru/i177/0912/cb/d43971cebc02.png作为回应,我有:(部分)
    “输入类型=“文本”id=“field-summary”名称=“field_summary”大小=“70”“

    “textarea id=”field-description” name=”field_description” class=”wikitext” rows=”10” cols=”68”/textarea””
    5。所以,我这样写:

int status = 0;
int cookLength=0;
Cookie[] cookies = null;

HttpClient client = new HttpClient();
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
HttpState initialState = new HttpState();
client.setState(initialState);

//**********//
//**Log in**//
//**********//

GetMethod login = new GetMethod("http://localhost:8000/tracenvir/login");
client.getState().setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("rauch", "qwert"));
login.setDoAuthentication(true);
System.setProperty("javax.net.ssl.trustStore", "/home/rauch/NetBeansProjects/jssecacerts");

try {
status = client.executeMethod(login);

System.out.println("response code = "+status);
cookies = client.getState().getCookies();
cookLength = cookies.length;

for(int i=0;i (less than) cookLength;i++) {
System.out.println(cookies[i].toString());
}
login.releaseConnection();
} catch(IOException ex) {
ex.printStackTrace();
}

//*********************//
//**Create New Ticket**//
//*********************//

PostMethod post = new PostMethod("http://localhost:8000/tracenvir/newticket");

NameValuePair[] data = {
new NameValuePair("field-summary","second error"),
new NameValuePair("field-descryption","Some stupid descryption..."),
new NameValuePair("field-type","defect"),
new NameValuePair("field-priority","major"),
new NameValuePair("field-version","1.0"),
new NameValuePair("field-owner","moscow server"),
new NameValuePair("submit","create ticket"),
};


//post.setRequestBody(data);
post.addParameters(data);
post.addRequestHeader("Referer","http://localhost:8000/tracenvir/login");
for(int i=0;i (less than) cookLength;i++) {
initialState.addCookie(cookies[i]);
}
client.setState(initialState);


try {
status = client.executeMethod(post);

System.out.println("response code = "+status);

byte[] buf = new byte[10];
int r=0;
BufferedInputStream is = new BufferedInputStream(post.getResponseBodyAsStream());

while((r = is.read(buf)) > 0) {
System.out.write(buf, 0, r);
}
post.releaseConnection();
} catch(IOException ex) {
ex.printStackTrace();
}
}

我有这个:

    400 错误:错误请求
    表单 token 缺失或无效。您启用了cookie吗?

出了什么问题?

    作为 GET 请求的响应,我得到以下信息:
      响应代码 = 200trac_auth=38144ec2830678183afebf0b14c51721
      trac_form_token=e9648f17987551b8f97e1953

也许我需要改变这个:

    client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);

最佳答案

http://www.google.com/support/toolbar/bin/answer.py?hl=en&answer=47972

我认为上面的链接会对您在这个主题上有所帮助。它还提供视频..我希望您的疑问能够得到解决

http://www.formautofill.com/

该网站将为您提供一个提供自动填表功能的软件。由微软提供。

关于java - Cookies...Http POST 无法正常工作,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1890111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com