Java 基于Matlab的httppost
我遵循了这篇文章中给出的示例:,但是我收到了一条错误消息,我找不到任何相关信息。我的脚本如下所示:Java 基于Matlab的httppost,java,http,matlab,Java,Http,Matlab,我遵循了这篇文章中给出的示例:,但是我收到了一条错误消息,我找不到任何相关信息。我的脚本如下所示: javaaddpath('./httpcomponents/httpclient-4.2.2.jar') javaaddpath('./httpcomponents/httpcore-4.2.2.jar') import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.client.methods.Htt
javaaddpath('./httpcomponents/httpclient-4.2.2.jar')
javaaddpath('./httpcomponents/httpcore-4.2.2.jar')
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
httpclient = DefaultHttpClient();
httppost = HttpPost('http://localhost:3000/signin');
httppost.addHeader('Content-Type','application/json');
httppost.addHeader('Accept','application/json');
tokenRequest = StringEntity('{"session", "{email_address:""email@aol.com,""password:""password""}"}');
httppost.setEntity(tokenRequest);
response = httpclient.execute(httppost);
在最后一行,我得到一个错误:
发生Java异常:Java.lang.VerifyError:无法从最终类继承
通过在线搜索,我推断这是一个软件版本问题。我尝试使用这些文件的4.2版本(与另一篇文章中使用的版本相同),但收到了相同的错误。有没有人知道会出什么问题?或者知道在不使用这些外部库的情况下执行我正在尝试的操作的方法吗
编辑:
最初我尝试使用以下代码:
tokenRequest = {'session', '{''email_address'':''email@aol.com'',''password'':''password''}'};
token = urlread('http://localhost:3000/signin','POST',tokenRequest);
但我收到了一封命名信,这封信把我带到了另一个帖子:
NoMethodError (undefined method `each' for "{'email_address':'email@aol.com','password':'password'}":String):
app/models/session.rb:14:in `initialize'
我认为它抛出此错误的原因是服务器认为它正在接收一个字符串对象,而该对象没有each方法。我假设我会通过使用'Content Type'参数来指定它的json来解决这个问题。有没有一种方法可以使用urlread实现这一点
编辑:java libs问题的完整堆栈跟踪
Java exception occurred:
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at com.mathworks.jmi.CustomURLClassLoader.findClass(ClassLoaderManager.java:760)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at org.apache.http.impl.client.DefaultHttpClient.createHttpParams(DefaultHttpClient.java:157)
at org.apache.http.impl.client.AbstractHttpClient.getParams(AbstractHttpClient.java:448)
at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:309)
at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:466)
at org.apache.http.impl.client.AbstractHttpClient.createHttpContext(AbstractHttpClient.java:286)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:851)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
看起来发送的数据没有正确引用。最终结果应该是
{'email_address':'email@aol.com','password':'password'}
尝试将代码更改为
tokenRequest = StringEntity('{"session", {"email_address":"email@aol.com","password":"password"}}');
看起来发送的数据没有正确引用。最终结果应该是
{'email_address':'email@aol.com','password':'password'}
尝试将代码更改为
tokenRequest = StringEntity('{"session", {"email_address":"email@aol.com","password":"password"}}');
结果证明这是一个更好的解决方案。此代码执行以下任务:
tokenRequest = '{ "session" : { "email_address": "email@aol.com", "password": "password" } }';
header = http_createHeader('Content-Type','application/json');
token = urlread2('http://localhost:3000/signin.json','POST',tokenRequest,header);
结果证明这是一个更好的解决方案。此代码执行以下任务:
tokenRequest = '{ "session" : { "email_address": "email@aol.com", "password": "password" } }';
header = http_createHeader('Content-Type','application/json');
token = urlread2('http://localhost:3000/signin.json','POST',tokenRequest,header);
是的,那会是个问题。但是,在我使用DefaultHttpClient的情况下,问题是它没有向服务器发送任何东西——java异常会阻止它。我重写了我的另一个脚本以匹配你发布的最终结果,但我仍然得到了命名错误。是的,那会是一个问题。但是,在我使用DefaultHttpClient的情况下,问题是它没有向服务器发送任何东西——java异常会阻止它。我重写了另一个脚本以匹配您发布的最终结果,但我仍然得到了命名错误。