gpt4 book ai didi

java - 无法将我的请求参数发送到bluemix部署的node.js

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:33 25 4
gpt4 key购买 nike

无法从bluemix 部署的node.js 检索响应。我的android xml、java代码和node.js代码如下。任何人都可以帮我解决这个问题

我的 android xml 代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
tools:context="com.example.rest.MainActivity" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerInParent="true"
android:orientation="vertical" >

<TextView
android:id="@+id/textreg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center"
android:paddingLeft="20dp"
android:text="Register here"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#0b84aa"
android:textSize="25sp"
android:typeface="serif" />

<EditText
android:id="@+id/editTextreg5"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:ems="10"
android:hint="Full Name"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:textColor="#000000"
android:textSize="20dp"
android:inputType="textPersonName" />

<EditText
android:id="@+id/editTextreg"
android:layout_width="match_parent"
android:layout_height="wrap_content"

android:ems="10"
android:hint="Short Id @ibm.com"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:textColor="#000000"
android:textSize="20dp"
android:inputType="textEmailAddress" />




<EditText
android:id="@+id/editTextreg2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Password"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
android:textColor="#000000"
android:textSize="20dp"
android:inputType="textPassword" />

<Button
android:id="@+id/buttonreg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"

android:layout_marginTop="20dp"
android:layout_marginRight="15dp"
android:layout_marginLeft="15dp"
android:textColor="#0b84aa"
android:textStyle="bold"
android:text="Register" />

</LinearLayout>

还有我的java代码:

package com.example.rest;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;



import org.json.JSONObject;
import org.json.JSONException;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.JsonHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import org.apache.http.Header;
import android.support.v7.app.ActionBarActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {


String url = "http://mobilefeedbackform.mybluemix.net/";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button breg1 = (Button) findViewById(R.id.buttonreg);

breg1.setOnClickListener(new View.OnClickListener() {



public void onClick(View v) {

final EditText Name =(EditText) findViewById(R.id.editTextreg5);
final EditText Email =(EditText) findViewById(R.id.editTextreg);
final EditText Passwd =(EditText) findViewById(R.id.editTextreg2);

if(Name.getText().toString().length()==0)
{
Toast.makeText(MainActivity.this,
"Please enter Name", Toast.LENGTH_LONG)
.show();
return;
}

else if(Email.getText().toString().length()==0)
{
Toast.makeText(MainActivity.this,
"Please enter EmailId", Toast.LENGTH_LONG)
.show();
return;
}

else if(Passwd.getText().toString().length()==0)
{
Toast.makeText(MainActivity.this,
"Please enter Password", Toast.LENGTH_LONG)
.show();
return;
}
else
{
String result = null;
String nametxt = Name.getText().toString();
String emailtxt = Email.getText().toString();
String passwdtxt = Passwd.getText().toString();

//this is the route of your Node.js service on Bluemix
//String yourNodeJsBluemixRoute = "mobilefeedbackform.mybluemix.net";//http://mobilefeedbackform.mybluemix.net/
String url = "http://mobilefeedbackform.mybluemix.net/";
// These are just example strings, you can use your own here
Toast.makeText(MainActivity.this,
"Before sending "+ nametxt + emailtxt + passwdtxt, Toast.LENGTH_LONG)
.show();
// Create necessary objects
HttpClient httpClient = new DefaultHttpClient();

try
{
Toast.makeText(MainActivity.this,
"Inside try ", Toast.LENGTH_LONG)
.show();
//httpResponse = http.get(RESTSERVICEURI + "/?deviceid=" + deviceId + "&latitude=" + String.valueOf(gps.getLatitude()) + "&longitude=" + String.valueOf(gps.getLongitude()));
HttpGet httpGet = new HttpGet(url+"?name=" + nametxt + "&email=" + emailtxt + "&passwd=" + passwdtxt);
Toast.makeText(MainActivity.this,
"After sending ", Toast.LENGTH_LONG)
.show();
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
Toast.makeText(MainActivity.this,
"Got response ", Toast.LENGTH_LONG)
.show();
if (httpEntity != null)
{
Toast.makeText(MainActivity.this,
"Inside If ", Toast.LENGTH_LONG)
.show();
InputStream inputstream = httpEntity.getContent();
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(inputstream));
StringBuilder stringbuilder = new StringBuilder();

String currentline = null;
while ((currentline = bufferedreader.readLine()) != null)
{
Toast.makeText(MainActivity.this,
"Inside while ", Toast.LENGTH_LONG)
.show();
stringbuilder.append(currentline + "\n");
}

result = stringbuilder.toString();
inputstream.close();
}

return;
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
});
}
}

我的node.js代码是:

 var express    = require('express');
app = express();



var http = require('http');
var url = require('url');

var PORT = (process.env.VCAP_APP_PORT || 8000);
var HOST = (process.env.VCAP_APP_HOST || 'localhost');

var queryData = null;

http.createServer(function(request, response) {
queryData = url.parse(request.url, true).query;
console.log("Hai3");
//respond to the client
response.write("Got the GET request");
response.end();
}).listen(PORT, HOST);

有人可以帮我解决这个问题吗?

最佳答案

在 Node.js 代码中,您应该使用 request.query。这将返回查询字符串的对象作为键值对。

关于java - 无法将我的请求参数发送到bluemix部署的node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799038/

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