我想从java代码登录应用程序.这是我的代码......
String httpsURL = "https://www.abcd.com/auth/login/";
String query = "email="+URLEncoder.encode("abc@xyz.com","UTF-8");
query += "&";
query += "password="+URLEncoder.encode("abcd","UTF-8") ;
URL myurl = new URL(httpsURL);
HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-length", String.valueOf(query.length()));
con.setRequestProperty("Content-Type","application/x-www- form-urlencoded");
con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0;Windows98;DigExt)");
con.setDoOutput(true);
con.setDoInput(true);
DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeBytes(query);
output.close();
DataInputStream input = new DataInputStream( con.getInputStream() );
for( int c = input.read(); c != -1; c = input.read() )
System.out.print( (char)c );
input.close();
System.out.println("Resp Code:"+con .getResponseCode());
System.out.println("Resp Message:"+ con .getResponseMessage());
Run Code Online (Sandbox Code Playgroud)
但我无法登录,它只返回登录页面.
如果有人可以,请帮助我理解我做错了什么.
我有一个ASP.NET Web API端点,其控制器操作定义如下:
[HttpPost]
public HttpResponseMessage Post([FromBody] object text)
Run Code Online (Sandbox Code Playgroud)
如果我的帖子请求正文包含纯文本(即不应该被解释为json,xml或任何其他特殊格式),那么我认为我可以在我的请求中包含以下标题:
Content-Type: text/plain
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误:
No MediaTypeFormatter is available to read an object of type 'Object' from content with media type 'text/plain'.
Run Code Online (Sandbox Code Playgroud)
如果我将控制器操作方法签名更改为:
[HttpPost]
public HttpResponseMessage Post([FromBody] string text)
Run Code Online (Sandbox Code Playgroud)
我得到一个略有不同的错误消息:
No MediaTypeFormatter is available to read an object of type 'String' from content with media type 'text/plain'.
Run Code Online (Sandbox Code Playgroud) 我有输入字段的HTML表单.一些输入可以为空,即值为"".
<input name="commentary" value="">
刚才,当commentary没有设置字段时,它会出现在提交网址中:&commentary=
如何从提交URL中删除空输入,因此当commentary输入为空时,它根本不会被传递.
非常感谢你.
感谢minitech的回答,我可以解决它.JavaScript代码如下:
$('#my-form-id').submit(function() {
var commentary = $('#commentary').val();
if (commentary === undefined || commentary === "") {
$('#commentary').attr('name', 'empty_commentary');
} else {
$('#commentary').attr('name', 'commentary');
}
});
Run Code Online (Sandbox Code Playgroud)
我使用"empty_"作为前缀字段名称的唯一原因是IE无论如何都在URL中传递空名称.
我有一个控制器方法CreateOrUpdate,这个方法应该将汽车保存到数据库然后正常返回.
public ActionResult CreateOrUpdate(int ID = 0)
{
Car car = new Car(ID);
}
[HttpPost]
public ActionResult CreateOrUpdate(Car car)
{
car.Save();
return View(car);
}
Run Code Online (Sandbox Code Playgroud)
在theCar.Save()方法中,我设置了汽车的id,在汽车保存后,无论数据库中的id是什么(当我使用SCOPE_IDENTITY()进行插入时,save方法运行良好,如果我在调用Save()之后调试并观察汽车的值,id是正确的.但是当渲染View时,视图中的ID为0.
谁能帮助我,告诉我为什么会这样.我不想在HTTP POST方法中更改视图的模型吗?如果保存成功,我应该重定向到原始的CreateOrUpdate()方法.
我正在编写一个Android应用程序的代码,该应用程序应该获取数据,将其打包为Json并将其发布到Web服务器,而后者应该使用json进行响应.
使用GET请求工作正常,但由于某些原因使用POST,所有数据似乎都被剥离,服务器没有收到任何内容.
这是代码的片段:
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 5000);
HttpConnectionParams.setSoTimeout(params, 5000);
DefaultHttpClient httpClient = new DefaultHttpClient(params);
BasicCookieStore cookieStore = new BasicCookieStore();
httpClient.setCookieStore(cookieStore);
String uri = JSON_ADDRESS;
String result = "";
String username = "user";
String apikey = "something";
String contentType = "application/json";
JSONObject jsonObj = new JSONObject();
try {
jsonObj.put("username", username);
jsonObj.put("apikey", apikey);
} catch (JSONException e) {
Log.e(TAG, "JSONException: " + e);
}
HttpPost httpPost = new HttpPost(uri);
List<NameValuePair> postParams = new ArrayList<NameValuePair>();
postParams.add(new BasicNameValuePair("json", jsonObj.toString()));
HttpGet httpGet …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试发布一个由两个强类型视图组成的表单.这个问题很相似,但没有答案:
当我提交表单时,提交给控制器的模型始终为null.我花了几个小时试图让它发挥作用.这似乎应该很简单.我在这里错过了什么吗?我不需要做ajax只需要能够发布到控制器并呈现一个新页面.
谢谢
这是我的观看代码:
<div>
@using (Html.BeginForm("TransactionReport", "Reports", FormMethod.Post, new {id="report_request"}))
{
ViewContext.FormContext.ValidationSummaryId = "valSumId";
@Html.ValidationSummary(false, "Please fix these error(s) and try again.", new Dictionary<string, object> { { "id", "valSumId" } });
@Html.Partial("_ReportOptions", Model.ReportOptions);
@Html.Partial("_TransactionSearchFields", new ViewDataDictionary(viewData) { Model = Model.SearchCriteria });
}
Run Code Online (Sandbox Code Playgroud)
这是控制器中的代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult TransactionReport(TransactionReportRequest reportRequest)
{
var reportInfo = new List<TransactionReportItem>();
if (ModelState.IsValid)
{
var reportData = _reportDataService.GetReportData(Search.MapToDomainSearchCriteria(reportRequest.SearchCriteria));
if (reportData!=null)
{
reportInfo = reportData.ToList();
}
return View(reportInfo);
}
return View(reportInfo);
}
Run Code Online (Sandbox Code Playgroud)
部分视图本身非常无关紧要,因为他们正在做的就是参与并展示他们的模型.
我试图将一些json发布到URL.我在stackoverflow上看到了关于这个的各种其他问题,但它们似乎都没有明确或有效.这是我得到了多远,我在api文档上修改了示例:
var http = require('http');
var google = http.createClient(80, 'server');
var request = google.request('POST', '/get_stuff',
{'host': 'sever', 'content-type': 'application/json'});
request.write(JSON.stringify(some_json),encoding='utf8'); //possibly need to escape as well?
request.end();
request.on('response', function (response) {
console.log('STATUS: ' + response.statusCode);
console.log('HEADERS: ' + JSON.stringify(response.headers));
response.setEncoding('utf8');
response.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
Run Code Online (Sandbox Code Playgroud)
当我把它发布到服务器时,我得到一个错误,告诉我它不是json格式或者它不是utf8,它们应该是.我试图拉取请求网址,但它是null.我刚开始使用nodejs,所以请你好.
在jQuery中有一个简单的非AJAX POST方法吗?
我正在寻找一个与页面上的表单相当的东西,只有通过JavaScript设置的隐藏字段,然后获得POST,导致浏览器加载页面集action.只是一个正常的POST,但通过jQuery设置值.
我想我可以继续实现我当前的方法,但我很好奇jQuery是否提供了一种快速方法.在后台,我想它会动态创建包含所有隐藏值的表单并提交它.
如何使用Fiddler检查来自Web服务器的响应.我可以通过将URL粘贴到Request Builder中的字段来轻松检查GET方法,并在xml/json中返回响应.有一个选项POST,但我不知道如何将参数传递给POST.
例如:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.google.com/accounts/ClientLogin");
request.Method = "POST";
string postData = "accountType=HOSTED_OR_GOOGLE";
postData += "&Email=yourusername@gmail.com";
postData += "&Passwd=yourpassword";
postData += "&service=finance";
postData += "&source=test-test-.01";
Run Code Online (Sandbox Code Playgroud)
如何在Fiddler中将我的数据传递给此POST方法以获取响应?
我有一个涉及httprequest的错误,有时会发生这种错误,因此我想在发生这种情况时记录HttpGet和HttpPost请求的内容.
所以,让我们说,我创建像这样的HttpGet:
HttpGet g = new HttpGet();
g.setURI(new URI("http://www.google.com"));
g.setHeader("test", "hell yeah");
Run Code Online (Sandbox Code Playgroud)
这是我想要的字符串表示:
GET / HTTP/1.1
Host: www.google.com
test: hell yeah
Run Code Online (Sandbox Code Playgroud)
有了post请求,我还想获得内容字符串.
在java for android中最简单的方法是什么?
http-post ×10
java ×3
android ×2
javascript ×2
asp.net-mvc ×1
c# ×1
content-type ×1
fiddler ×1
forms ×1
html ×1
http-get ×1
http-request ×1
httpclient ×1
jquery ×1
json ×1
node.js ×1
razor ×1
text ×1