С переменной Java 5 args, таким образом, Вы не должны наполнять все свои строки в набор или массив явно:
import junit.framework.Assert;
import org.junit.Test;
public class StringUtil
{
public static String join(String delim, String... strings)
{
StringBuilder builder = new StringBuilder();
if (strings != null)
{
for (String str : strings)
{
if (builder.length() > 0)
{
builder.append(delim).append(" ");
}
builder.append(str);
}
}
return builder.toString();
}
@Test
public void joinTest()
{
Assert.assertEquals("", StringUtil.join(",", null));
Assert.assertEquals("", StringUtil.join(",", ""));
Assert.assertEquals("", StringUtil.join(",", new String[0]));
Assert.assertEquals("test", StringUtil.join(",", "test"));
Assert.assertEquals("foo, bar", StringUtil.join(",", "foo", "bar"));
Assert.assertEquals("foo, bar, x", StringUtil.join(",", "foo", "bar", "x"));
}
}
Update
This library has now been replaced by http://nuget.org/packages/Microsoft.Net.Http/2.1.10
Use the Microsoft.Http client library that is in WCF REST Starter Kit Preview 2.
Here is how you could use it:
var client = new HttpClient();
client.DefaultHeaders.Authorization = new Credential("ArbitraryAuthHeader");
client.DefaultHeaders.Date = DateTime.Now;
client.DefaultHeaders.Accept.Add("application/xml");
var response = client.Get("http://example.org");
var xmlString = response.Content.ReadAsString();
Есть несколько способов сделать это, но использование объектов WebRequest - самый быстрый, если вам нужно выполнить всего несколько вызовов.
На этом сайте есть отличный обзор процесса.
Несмотря на несколько вводящее в заблуждение название, ADO.NET Data Services (который является частью .NET 3.5) содержит API-интерфейсы как для предоставления, так и для использования служб на основе REST. В вашем случае вы можете спокойно игнорировать часть, которая позволяет вам предоставлять сервисы, и сконцентрироваться на клиентской части.
Он поддерживает LINQ и всевозможные улучшения, позволяя вам запрашивать вашу службу REST следующим образом:
var selectedOrders = from o in context.Orders
where o.Freight > 30
orderby o.ShippedDate descending
select o;
Там больше о это здесь . Попробуйте - пока мне это очень нравится.
На самом деле ваш вопрос не слишком ясен, ищете ли вы функцию VS2008 или функцию платформы ASP.NET. Итак, я выберу кодовое решение.
В синтаксисе неявной привязки, который вы используете, используется LocalResourceProvider ASP.NET по умолчанию, который принимает путь к странице, на которой находятся ресурсы, чтобы определить, какие ресурсы загружать. Если ваши ресурсы хранятся в другом месте, и вы по-прежнему хотите использовать синтаксис неявной привязки в своем коде, вам нужно будет использовать собственный поставщик. Звучит сложно, но это довольно просто.
Для этого вам нужно сначала создать подкласс ResourceProviderFactory
и переопределить оба
IResourceProvider CreateGlobalResourceProvider(string classKey)
IResourceProvider CreateLocalResourceProvider(string virtualPath)
... А вот фрагмент кода, чтобы поговорить с Twitter:
HttpClient http = new HttpClient("http://twitter.com/statuses/");
http.TransportSettings.Credentials =
new NetworkCredential("{username}", "{password}");
HttpResponseMessage resp = http.Get("friends_timeline.xml");
resp.EnsureStatusIsSuccessful();
ProcessStatuses(resp.Content.ReadAsStream());