问题描述:

I am porting a game from Java Native to Unity. While the game is working correctly, I am having trouble posting the score using the same web services.

Java Code:

public static String gameConfigURL = "http://192.168.0.140/services/scoreupload.svc/json/GetGameConfigurationLite";

public static String scoreUploadURL = "http://192.168.0.140/services/scoreupload.svc/json/Upload";

public static final String MagicKey = "0GmWDa6j";

private static int timeoutConnection = 60000;

public static enum RequestSource

{

Unknown,

System,

Person;

}

public static Response sendRequestForResult(Request request, String Url,

Activity activity, Response response) throws JSONException,

ClientProtocolException, IOException,ConnectTimeoutException {

/** Code to create a JSON request from requestObject **/

JSONObject object = request.getJSON();

JSONObject requestObject = new JSONObject();

requestObject.put("request", object);

Log.v("","REQUEST:"+requestObject.toString());

/** Add code to create a HttpPostRequest **/

DefaultHttpClient client = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(Url);

HttpParams httpParameters = new BasicHttpParams();

HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);

HttpResponse httpResponse = null;

String jsonValueString = null;

StringEntity se = null;

try {

se = new StringEntity(requestObject.toString());

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

}

httpPost.setEntity(se);

httpPost.setHeader("Accept", "application/json");

httpPost.setHeader("Content-Type", "text/json");

/**

* add code to attach the JSON object received from request to the

* HttpPostRequest Add Code to execute HttpRequest

**/

httpResponse = client.execute(httpPost);

/** Get string from the HttpRespnse **/

jsonValueString = EntityUtils.toString(httpResponse.getEntity());

Log.v("","RESPONSE:"+jsonValueString);

/** Create JSON object from incoming String **/

JSONObject repliedObject = new JSONObject(jsonValueString);

response.fromJSON(repliedObject);

return response;

How Do I convert this to unity C#.

So far I have this:

JSONObject j = new JSONObject ();

j.AddField ("Id", "1234567890");

j.AddField ("MagicKey", ApplicationServices.magicKey);

j.AddField ("RequestedBy", "09996f84-1a06-e211-a518-001aa020d699");

j.AddField ("Timestamp", "/Date(1547535370953)/");

j.AddField ("RequestSource", "Person");

j.AddField ("RequestedGameId", "375b43c0-91be-e011-a505-001aa020d699");

j.AddField ("RequestedPersonId", "09996f84-1a06-e211-a518-001aa020d699");

string json = j.ToString ();

Dictionary<string, string> header = new Dictionary<string, string>();

header.Add ("Accept", "application/json");

header.Add ("Content-Type", "text/json");

byte[] encode = Encoding.ASCII.GetBytes (json.ToCharArray ());

WWW getConfig = new WWW (ApplicationServices.gameConfigURL, encode, header);

yield return getConfig;

if (getConfig.error != null) {

Debug.Log (getConfig.error);

} else {

Debug.Log (getConfig.text);

}

This does not seem to work.

网友答案:

For "POST" you should use WWWForm instead of WWW.
Take a look here

相关阅读:
Top