def open_binary(ctx, server_relative_url): server_relative_url = urllib.quote(server_relative_url) url = "{0}web/getfilebyserverrelativeurl('{1}')/\$value".format( ctx.service_root_url, server_relative_url) request = RequestOptions(url) request.method = HttpMethod.Get response = ctx.execute_query_direct(request) return response
def save_binary(ctx, server_relative_url, content): server_relative_url = urllib.quote(server_relative_url) url = "{0}web/getfilebyserverrelativeurl('{1}')/\$value".format(ctx.service_root_url, server_relative_url) request = RequestOptions(url) request.method = HttpMethod.Post request.set_header('X-HTTP-Method', 'PUT') request.data = content ctx.execute_query_direct(request)
def request_form_digest(self): """Request Form Digest""" request = RequestOptions(self.service_root_url + "contextinfo") self.authenticate_request(request) request.set_headers(self.json_format.build_http_headers()) response = requests.post(url=request.url, headers=request.headers, auth=request.auth) payload = response.json() if self.json_format.metadata == ODataMetadataLevel.Verbose: payload = payload['d']['GetContextWebInformation'] self.contextWebInformation = ContextWebInformation() self.contextWebInformation.from_json(payload)
def save_binary(ctx, server_relative_url, content): server_relative_url = urllib.quote(server_relative_url) url = "{0}web/getfilebyserverrelativeurl('{1}')/\$value".format( ctx.service_root_url, server_relative_url) request = RequestOptions(url) request.method = HttpMethod.Post request.set_header('X-HTTP-Method', 'PUT') request.data = content ctx.execute_query_direct(request)
def list_sites(username, password): ctx_auth = AuthenticationContext(url) if ctx_auth.acquire_token_for_user(username, password): request = ClientRequest(ctx_auth) options = RequestOptions("{0}/_api/web/".format(url)) options.set_header('Accept', 'application/json') options.set_header('Content-Type', 'application/json') data = request.execute_query_direct(options) s = json.loads(data.content) web_title = s['Title'] return "Web title: " + web_title else: return ctx_auth.get_last_error()
def build_request(self, query): request = RequestOptions(query.url) "set json format headers" request.set_headers(self.context.json_format.build_http_headers()) if isinstance(self.context.json_format, JsonLightFormat): "set custom method headers" if query.action_type == ActionType.DeleteEntry: request.set_header("X-HTTP-Method", "DELETE") request.set_header("IF-MATCH", '*') elif query.action_type == ActionType.UpdateEntry: request.set_header("X-HTTP-Method", "MERGE") request.set_header("IF-MATCH", '*') "set method" if not (query.action_type == ActionType.ReadEntry or query.action_type == ActionType.GetMethod): request.method = HttpMethod.Post else: if query.action_type == ActionType.CreateEntry: request.method = HttpMethod.Post elif query.action_type == ActionType.UpdateEntry: request.method = HttpMethod.Patch elif query.action_type == ActionType.DeleteEntry: request.method = HttpMethod.Delete "set request payload" request.data = query.payload return request
from client.office365.runtime.auth.authentication_context import AuthenticationContext from client.office365.runtime.client_request import ClientRequest from client.office365.runtime.utilities.request_options import RequestOptions from settings import settings import json if __name__ == '__main__': context_auth = AuthenticationContext(url=settings['url']) if context_auth.acquire_token_for_user(username=settings['username'], password=settings['password']): """Read Web client object""" request = ClientRequest(settings['url'], context_auth) options = RequestOptions("{0}/_api/web/".format(settings['url'])) options.set_header('Accept', 'application/json') options.set_header('Content-Type', 'application/json') data = request.execute_query_direct(options) s = json.loads(data.content) web_title = s['Title'] print "Web title: " + web_title else: print context_auth.get_last_error()