将下面java代码转化为c#

时间:2022-07-11 06:44:10
package xmlrpc.client;

import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.jdom.Document;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.xml.sax.InputSource;

import java.io.File;
import java.io.FileOutputStream;
import java.io.StringReader;
import java.net.URL;
import java.util.HashMap;
import java.util.Vector;

public class TrafficDaily {

  public static void main(String[] args) {
  try{
  XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
  config.setServerURL(new URL("https://report.99click.com/api/c/sfrpc"));
  XmlRpcClient client = new XmlRpcClient();
  client.setConfig(config);
   
  int memberid=;
  int compid=;  
   
   
  HashMap hashmap = new HashMap();
  hashmap.put("memberid", new Integer(memberid));//会员id
  hashmap.put("compid", new Integer(compid));//公司id
  hashmap.put("username", "");//用户名
  hashmap.put("password", "");//密码
  hashmap.put("date", "");//日期,格式形如2010-01-01
   
  Vector params = new Vector();
  params.addElement(hashmap);
  String result = (String)client.execute("getdata.trafficdaily", params);
  System.out.println("result:\n"+result);
   
  String xmlStr =result;
  StringReader sr = new StringReader(xmlStr);
  InputSource is = new InputSource(sr);
  Document doc = (new SAXBuilder()).build(is); //
   
  Format format = Format.getPrettyFormat();
  format.setEncoding("UTF-8");//
  format.setIndent(" ");
  XMLOutputter xmlout = new XMLOutputter(format);
  FileOutputStream bo = new FileOutputStream(new File("d:\\3.xml")); 
  xmlout.output(doc,bo);
  }catch(Exception e){
  e.printStackTrace();
  }
  }

}

3 个解决方案

#1


兄台借楼一用:
哪位大神麻烦给下面的java代码转换为C#代码:

package com.infomsg.api.client.normal;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import net.sf.json.JSONObject;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

public class GetTimeDemo {

public static void main(String[] args) throws Exception {
getRemoteTime();
}

private static void getRemoteTime() throws Exception {
HttpClient client = new DefaultHttpClient();
HttpResponse response = null;
HttpEntity entity = null;
String url = "http://127.0.0.1/system/api/get_time.json"; // 根据您访问的域名进行修改
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nvps = setParameters();

httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = client.execute(httpPost);
entity = response.getEntity();
try {
String result = null;
if (entity != null) {
result = EntityUtils.toString(response.getEntity());
System.out.println("response: " + result);
analyze(result);
}
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
// ...
}
}

private static void analyze(String s) {
JSONObject jsonObj = JSONObject.fromObject(s);
System.out.println("SUCCESS:" + jsonObj.get("SUCCESS"));
System.out.println("MESSAGE:" + jsonObj.get("MESSAGE"));
System.out.println("RESULT:" + jsonObj.get("RESULT"));
}

private static List<NameValuePair> setParameters() throws Exception {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("remote_user_id", "1");
parameters.put("remote_time", String.valueOf(System.currentTimeMillis()));
parameters.put("salt", "Nidy*3na.<d6Uk"); // 您设定好在本系统盐值

List<String> list = sortKeys(parameters);
String md5 = getMd5EncodeResult(parameters, list);

List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("remote_verify_code", md5));// 参数中加入校验码
for (String key : list) {
if (key.equals("salt")) {
continue;
}
nvps.add(new BasicNameValuePair(key, parameters.get(key)));
}
return nvps;
}

private static String getMd5EncodeResult(Map<String, String> parameters, List<String> list) throws Exception {
// 按参数名排序对参数值进行MD5加密
StringBuilder builder = new StringBuilder();
for (String key : list) {
builder.append(parameters.get(key));
}
String md5 = md5Encode(builder.toString());
return md5;
}

private static List<String> sortKeys(Map<String, String> parameters) {
Set<String> keys = parameters.keySet();
List<String> list = new LinkedList<String>();
list.addAll(keys);
Collections.sort(list); // 对参数安参数名进行排序
return list;
}

private static String md5Encode(String str) throws Exception {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw e;
} catch (UnsupportedEncodingException e) {
throw e;
}
byte[] byteArray = messageDigest.digest();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
builder.append("0");
builder.append(Integer.toHexString(0xFF & byteArray[i]));
} else {
builder.append(Integer.toHexString(0xFF & byteArray[i]));
}
}
return builder.toString();
}
}

#2


c#版本的XML RPC可以参考
http://xml-rpc.net/

#3


楼主给你个开发语言相互转换的网址,你去看看
http://www.developerfusion.com/tools/convert/vb-to-csharp/
ps:你要是英语不好了,用谷歌浏览器吧,带翻译,还有你的结贴率忒低了···

#1


兄台借楼一用:
哪位大神麻烦给下面的java代码转换为C#代码:

package com.infomsg.api.client.normal;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

import net.sf.json.JSONObject;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

public class GetTimeDemo {

public static void main(String[] args) throws Exception {
getRemoteTime();
}

private static void getRemoteTime() throws Exception {
HttpClient client = new DefaultHttpClient();
HttpResponse response = null;
HttpEntity entity = null;
String url = "http://127.0.0.1/system/api/get_time.json"; // 根据您访问的域名进行修改
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> nvps = setParameters();

httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = client.execute(httpPost);
entity = response.getEntity();
try {
String result = null;
if (entity != null) {
result = EntityUtils.toString(response.getEntity());
System.out.println("response: " + result);
analyze(result);
}
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
// ...
}
}

private static void analyze(String s) {
JSONObject jsonObj = JSONObject.fromObject(s);
System.out.println("SUCCESS:" + jsonObj.get("SUCCESS"));
System.out.println("MESSAGE:" + jsonObj.get("MESSAGE"));
System.out.println("RESULT:" + jsonObj.get("RESULT"));
}

private static List<NameValuePair> setParameters() throws Exception {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("remote_user_id", "1");
parameters.put("remote_time", String.valueOf(System.currentTimeMillis()));
parameters.put("salt", "Nidy*3na.<d6Uk"); // 您设定好在本系统盐值

List<String> list = sortKeys(parameters);
String md5 = getMd5EncodeResult(parameters, list);

List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("remote_verify_code", md5));// 参数中加入校验码
for (String key : list) {
if (key.equals("salt")) {
continue;
}
nvps.add(new BasicNameValuePair(key, parameters.get(key)));
}
return nvps;
}

private static String getMd5EncodeResult(Map<String, String> parameters, List<String> list) throws Exception {
// 按参数名排序对参数值进行MD5加密
StringBuilder builder = new StringBuilder();
for (String key : list) {
builder.append(parameters.get(key));
}
String md5 = md5Encode(builder.toString());
return md5;
}

private static List<String> sortKeys(Map<String, String> parameters) {
Set<String> keys = parameters.keySet();
List<String> list = new LinkedList<String>();
list.addAll(keys);
Collections.sort(list); // 对参数安参数名进行排序
return list;
}

private static String md5Encode(String str) throws Exception {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw e;
} catch (UnsupportedEncodingException e) {
throw e;
}
byte[] byteArray = messageDigest.digest();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) {
builder.append("0");
builder.append(Integer.toHexString(0xFF & byteArray[i]));
} else {
builder.append(Integer.toHexString(0xFF & byteArray[i]));
}
}
return builder.toString();
}
}

#2


c#版本的XML RPC可以参考
http://xml-rpc.net/

#3


楼主给你个开发语言相互转换的网址,你去看看
http://www.developerfusion.com/tools/convert/vb-to-csharp/
ps:你要是英语不好了,用谷歌浏览器吧,带翻译,还有你的结贴率忒低了···